diff --git a/freefloating/position_string.go b/freefloating/position_string.go index d10a397..56e8324 100644 --- a/freefloating/position_string.go +++ b/freefloating/position_string.go @@ -4,9 +4,9 @@ package freefloating import "strconv" -const _Position_name = "StartEndSlashColonSemiColonAltEndDollarAmpersandNamePrefixKeyVarUseTypeReturnTypeOptionalTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchBreakForeachDeclareLabelFinallyListDefaultIfElseIfElseVariadicFunctionAliasAsEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListUseDeclarationListOpenParenthesisTokenCloseParenthesisToken" +const _Position_name = "StartEndSlashColonSemiColonAltEndDollarAmpersandNamePrefixKeyVarUseTypeReturnTypeOptionalTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchBreakForeachDeclareLabelFinallyListDefaultIfElseIfElseVariadicFunctionDoubleArrowAliasAsEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListUseDeclarationListOpenParenthesisTokenCloseParenthesisToken" -var _Position_index = [...]uint16{0, 5, 8, 13, 18, 27, 33, 39, 48, 52, 58, 61, 64, 71, 81, 93, 106, 117, 123, 126, 130, 134, 142, 150, 157, 161, 165, 178, 187, 193, 198, 201, 206, 209, 215, 220, 227, 234, 239, 246, 250, 257, 259, 265, 269, 277, 285, 290, 292, 297, 301, 306, 311, 316, 320, 324, 327, 332, 337, 342, 349, 358, 366, 375, 387, 400, 413, 424, 436, 448, 461, 475, 489, 507, 527, 548} +var _Position_index = [...]uint16{0, 5, 8, 13, 18, 27, 33, 39, 48, 52, 58, 61, 64, 71, 81, 93, 106, 117, 123, 126, 130, 134, 142, 150, 157, 161, 165, 178, 187, 193, 198, 201, 206, 209, 215, 220, 227, 234, 239, 246, 250, 257, 259, 265, 269, 277, 285, 296, 301, 303, 308, 312, 317, 322, 327, 331, 335, 338, 343, 348, 353, 360, 369, 377, 386, 398, 411, 424, 435, 447, 459, 472, 486, 500, 518, 538, 559} func (i Position) String() string { if i < 0 || i >= Position(len(_Position_index)-1) { diff --git a/freefloating/string.go b/freefloating/string.go index be5507f..ee05c36 100644 --- a/freefloating/string.go +++ b/freefloating/string.go @@ -61,6 +61,7 @@ const ( Else Variadic Function + DoubleArrow Alias As Equal diff --git a/main.go b/main.go index eb7d0eb..413f0c2 100644 --- a/main.go +++ b/main.go @@ -15,14 +15,12 @@ import ( "github.com/pkg/profile" "github.com/yookoala/realpath" "github.com/z7zmey/php-parser/parser" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" "github.com/z7zmey/php-parser/printer" "github.com/z7zmey/php-parser/visitor" ) var wg sync.WaitGroup -var usePhp5 *bool +var phpVersion string var dumpType string var profiler string var withFreeFloating *bool @@ -40,12 +38,12 @@ type result struct { } func main() { - usePhp5 = flag.Bool("php5", false, "parse as PHP5") withFreeFloating = flag.Bool("ff", false, "parse and show free floating strings") showResolvedNs = flag.Bool("r", false, "resolve names") printBack = flag.Bool("pb", false, "print AST back into the parsed file") flag.StringVar(&dumpType, "d", "", "dump format: [custom, go, json, pretty_json]") flag.StringVar(&profiler, "prof", "", "start profiler: [cpu, mem, trace]") + flag.StringVar(&phpVersion, "phpver", "7.4", "php version") flag.Parse() @@ -104,18 +102,15 @@ func processPath(pathList []string, fileCh chan<- *file) { } func parserWorker(fileCh <-chan *file, r chan<- result) { - var parserWorker parser.Parser - for { f, ok := <-fileCh if !ok { return } - if *usePhp5 { - parserWorker = php5.NewParser(f.content) - } else { - parserWorker = php7.NewParser(f.content) + parserWorker, err := parser.NewParser(f.content, phpVersion) + if err != nil { + panic(err.Error()) } if *withFreeFloating { diff --git a/node/expr/assign/n_coalesce.go b/node/expr/assign/n_coalesce.go new file mode 100644 index 0000000..40db8e9 --- /dev/null +++ b/node/expr/assign/n_coalesce.go @@ -0,0 +1,66 @@ +package assign + +import ( + "github.com/z7zmey/php-parser/freefloating" + "github.com/z7zmey/php-parser/node" + "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/walker" +) + +// Coalesce node +type Coalesce struct { + FreeFloating freefloating.Collection + Position *position.Position + Variable node.Node + Expression node.Node +} + +// NewCoalesce node constructor +func NewCoalesce(Variable node.Node, Expression node.Node) *Coalesce { + return &Coalesce{ + FreeFloating: nil, + Variable: Variable, + Expression: Expression, + } +} + +// SetPosition sets node position +func (n *Coalesce) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Coalesce) GetPosition() *position.Position { + return n.Position +} + +func (n *Coalesce) GetFreeFloating() *freefloating.Collection { + return &n.FreeFloating +} + +// Attributes returns node attributes as map +func (n *Coalesce) Attributes() map[string]interface{} { + return nil +} + +// Walk traverses nodes +// Walk is invoked recursively until v.EnterNode returns true +func (n *Coalesce) Walk(v walker.Visitor) { + if v.EnterNode(n) == false { + return + } + + if n.Variable != nil { + v.EnterChildNode("Variable", n) + n.Variable.Walk(v) + v.LeaveChildNode("Variable", n) + } + + if n.Expression != nil { + v.EnterChildNode("Expression", n) + n.Expression.Walk(v) + v.LeaveChildNode("Expression", n) + } + + v.LeaveNode(n) +} diff --git a/node/expr/assign/t_assign_op_test.go b/node/expr/assign/t_assign_op_test.go index 2ee757e..3a57089 100644 --- a/node/expr/assign/t_assign_op_test.go +++ b/node/expr/assign/t_assign_op_test.go @@ -80,12 +80,12 @@ func TestReference(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -165,12 +165,12 @@ func TestReferenceNew(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -287,12 +287,12 @@ func TestReferenceArgs(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -362,12 +362,12 @@ func TestAssign(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -437,12 +437,12 @@ func TestBitwiseAnd(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -512,12 +512,12 @@ func TestBitwiseOr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -587,12 +587,12 @@ func TestBitwiseXor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -662,12 +662,12 @@ func TestConcat(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -737,12 +737,12 @@ func TestDiv(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -812,12 +812,12 @@ func TestMinus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -887,12 +887,12 @@ func TestMod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -962,12 +962,12 @@ func TestMul(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1037,12 +1037,12 @@ func TestPlus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1112,12 +1112,12 @@ func TestPow(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1187,12 +1187,12 @@ func TestShiftLeft(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1262,13 +1262,83 @@ func TestShiftRight(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) } + +func TestCoalesce(t *testing.T) { + src := ` $a;` + + expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 14, + }, + Stmts: []node.Node{ + &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 14, + }, + Expr: &expr.ArrowFunction{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + ReturnsRef: false, + Static: false, + PhpDocComment: "", + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + Value: "a", + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestArrowFunctionReturnType(t *testing.T) { + src := ` $a;` + + expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + Stmts: []node.Node{ + &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + Expr: &expr.ArrowFunction{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, + }, + Static: false, + PhpDocComment: "", + ReturnsRef: true, + ReturnType: &name.Name{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, + Parts: []node.Node{ + &name.NamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, + Value: "foo", + }, + }, + }, + Expr: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 22, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 22, + }, + Value: "a", + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} diff --git a/node/expr/t_bitwise_not_test.go b/node/expr/t_bitwise_not_test.go index ca13766..a5688b0 100644 --- a/node/expr/t_bitwise_not_test.go +++ b/node/expr/t_bitwise_not_test.go @@ -61,12 +61,12 @@ func TestBitwiseNot(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_boolean_not_test.go b/node/expr/t_boolean_not_test.go index 0a78ff1..a695608 100644 --- a/node/expr/t_boolean_not_test.go +++ b/node/expr/t_boolean_not_test.go @@ -61,12 +61,12 @@ func TestBooleanNot(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_class_const_fetch_test.go b/node/expr/t_class_const_fetch_test.go index a7b1be1..6d7d1a3 100644 --- a/node/expr/t_class_const_fetch_test.go +++ b/node/expr/t_class_const_fetch_test.go @@ -74,12 +74,12 @@ func TestClassConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -133,12 +133,12 @@ func TestStaticClassConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_clone_test.go b/node/expr/t_clone_test.go index 3adff2e..afeaece 100644 --- a/node/expr/t_clone_test.go +++ b/node/expr/t_clone_test.go @@ -61,12 +61,12 @@ func TestCloneBrackets(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -119,12 +119,12 @@ func TestClone(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_closure_test.go b/node/expr/t_closure_test.go index 2d17372..899d306 100644 --- a/node/expr/t_closure_test.go +++ b/node/expr/t_closure_test.go @@ -50,12 +50,12 @@ func TestClosure(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -203,12 +203,12 @@ func TestClosureUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -356,12 +356,12 @@ func TestClosureUse2(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -420,7 +420,7 @@ func TestClosureReturnType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_const_fetch_test.go b/node/expr/t_const_fetch_test.go index 22b4a3e..5da2214 100644 --- a/node/expr/t_const_fetch_test.go +++ b/node/expr/t_const_fetch_test.go @@ -65,12 +65,12 @@ func TestConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -125,12 +125,12 @@ func TestConstFetchRelative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -185,12 +185,12 @@ func TestConstFetchFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_empty_test.go b/node/expr/t_empty_test.go index 8f5e786..3182500 100644 --- a/node/expr/t_empty_test.go +++ b/node/expr/t_empty_test.go @@ -61,12 +61,12 @@ func TestEmpty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_error_supress_test.go b/node/expr/t_error_supress_test.go index c742a6b..477a0e8 100644 --- a/node/expr/t_error_supress_test.go +++ b/node/expr/t_error_supress_test.go @@ -61,12 +61,12 @@ func TestErrorSuppress(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_eval_test.go b/node/expr/t_eval_test.go index 18e760f..bed1877 100644 --- a/node/expr/t_eval_test.go +++ b/node/expr/t_eval_test.go @@ -61,12 +61,12 @@ func TestEval(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_exit_test.go b/node/expr/t_exit_test.go index 888d954..f65658e 100644 --- a/node/expr/t_exit_test.go +++ b/node/expr/t_exit_test.go @@ -45,12 +45,12 @@ func TestExit(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -87,12 +87,12 @@ func TestExitEmpty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -146,12 +146,12 @@ func TestExitExpr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -188,12 +188,12 @@ func TestDie(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -230,12 +230,12 @@ func TestDieEmpty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -289,12 +289,12 @@ func TestDieExpr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_freefloating_test.go b/node/expr/t_freefloating_test.go index 92291d1..4a7f2b6 100644 --- a/node/expr/t_freefloating_test.go +++ b/node/expr/t_freefloating_test.go @@ -35,6 +35,9 @@ var nodes = []node.Node{ &expr.Array{ FreeFloating: expected, }, + &expr.ArrowFunction{ + FreeFloating: expected, + }, &expr.BitwiseNot{ FreeFloating: expected, }, diff --git a/node/expr/t_function_call_test.go b/node/expr/t_function_call_test.go index 4182da0..d59bd44 100644 --- a/node/expr/t_function_call_test.go +++ b/node/expr/t_function_call_test.go @@ -76,12 +76,12 @@ func TestFunctionCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -144,12 +144,12 @@ func TestFunctionCallRelative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -233,12 +233,12 @@ func TestFunctionFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -336,12 +336,12 @@ func TestFunctionCallVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -450,12 +450,12 @@ func TestFunctionCallExprArg(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_inc_dec_test.go b/node/expr/t_inc_dec_test.go index 0785bf8..abf2f55 100644 --- a/node/expr/t_inc_dec_test.go +++ b/node/expr/t_inc_dec_test.go @@ -61,12 +61,12 @@ func TestPostDec(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -119,12 +119,12 @@ func TestPostInc(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -177,12 +177,12 @@ func TestPreDec(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -235,12 +235,12 @@ func TestPreInc(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_include_test.go b/node/expr/t_include_test.go index 60e29ff..e622cd7 100644 --- a/node/expr/t_include_test.go +++ b/node/expr/t_include_test.go @@ -61,12 +61,12 @@ func TestInclude(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -119,12 +119,12 @@ func TestIncludeOnce(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -177,12 +177,12 @@ func TestRequire(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -235,12 +235,12 @@ func TestRequireOnce(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_instance_of_test.go b/node/expr/t_instance_of_test.go index aa50921..8123dfd 100644 --- a/node/expr/t_instance_of_test.go +++ b/node/expr/t_instance_of_test.go @@ -82,12 +82,12 @@ func TestInstanceOf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -159,12 +159,12 @@ func TestInstanceOfRelative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -236,12 +236,12 @@ func TestInstanceOfFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_isset_test.go b/node/expr/t_isset_test.go index 59d3ac4..fbbd8e7 100644 --- a/node/expr/t_isset_test.go +++ b/node/expr/t_isset_test.go @@ -63,12 +63,12 @@ func TestIsset(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -140,12 +140,12 @@ func TestIssetVariables(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_list_test.go b/node/expr/t_list_test.go index 54f4de1..1962253 100644 --- a/node/expr/t_list_test.go +++ b/node/expr/t_list_test.go @@ -70,12 +70,12 @@ func TestEmptyList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -163,12 +163,12 @@ func TestList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -264,12 +264,12 @@ func TestListArrayIndex(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -375,12 +375,12 @@ func TestListList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -469,12 +469,12 @@ func TestListEmptyItem(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -565,12 +565,12 @@ func TestListEmptyItems(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_method_call_test.go b/node/expr/t_method_call_test.go index b92989a..d5a0f36 100644 --- a/node/expr/t_method_call_test.go +++ b/node/expr/t_method_call_test.go @@ -78,12 +78,12 @@ func TestMethodCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_new_test.go b/node/expr/t_new_test.go index 562bb03..d0670f8 100644 --- a/node/expr/t_new_test.go +++ b/node/expr/t_new_test.go @@ -65,12 +65,12 @@ func TestNew(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -133,12 +133,12 @@ func TestNewRelative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -201,12 +201,12 @@ func TestNewFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -316,7 +316,7 @@ func TestNewAnonymous(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_print_test.go b/node/expr/t_print_test.go index 7b64e6c..c9b96e2 100644 --- a/node/expr/t_print_test.go +++ b/node/expr/t_print_test.go @@ -61,12 +61,12 @@ func TestPrint(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_property_fetch_test.go b/node/expr/t_property_fetch_test.go index b23c329..604242a 100644 --- a/node/expr/t_property_fetch_test.go +++ b/node/expr/t_property_fetch_test.go @@ -70,12 +70,12 @@ func TestPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_reference_test.go b/node/expr/t_reference_test.go index 093e518..8a9c38e 100644 --- a/node/expr/t_reference_test.go +++ b/node/expr/t_reference_test.go @@ -105,12 +105,12 @@ func TestForeachWithRef(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_shell_exec_test.go b/node/expr/t_shell_exec_test.go index 7b6a131..4932334 100644 --- a/node/expr/t_shell_exec_test.go +++ b/node/expr/t_shell_exec_test.go @@ -74,12 +74,12 @@ func TestShellExec(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_short_array_test.go b/node/expr/t_short_array_test.go index d99e267..24bfb6f 100644 --- a/node/expr/t_short_array_test.go +++ b/node/expr/t_short_array_test.go @@ -45,12 +45,12 @@ func TestShortArray(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -105,12 +105,12 @@ func TestShortArrayItem(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -208,12 +208,12 @@ func TestShortArrayItems(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_short_list_test.go b/node/expr/t_short_list_test.go index cce6aa2..76f0bbe 100644 --- a/node/expr/t_short_list_test.go +++ b/node/expr/t_short_list_test.go @@ -95,7 +95,7 @@ func TestShortList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -191,7 +191,7 @@ func TestShortListArrayIndex(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -297,7 +297,7 @@ func TestShortListList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_static_call_test.go b/node/expr/t_static_call_test.go index 9586d39..d2e6baf 100644 --- a/node/expr/t_static_call_test.go +++ b/node/expr/t_static_call_test.go @@ -82,12 +82,12 @@ func TestStaticCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -159,12 +159,12 @@ func TestStaticCallRelative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -236,12 +236,12 @@ func TestStaticCallFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -321,12 +321,12 @@ func TestStaticCallVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -404,12 +404,12 @@ func TestStaticCallVarVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_static_property_fetch_test.go b/node/expr/t_static_property_fetch_test.go index 28678ab..dfa6828 100644 --- a/node/expr/t_static_property_fetch_test.go +++ b/node/expr/t_static_property_fetch_test.go @@ -81,12 +81,12 @@ func TestStaticPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -158,12 +158,12 @@ func TestStaticPropertyFetchRelative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -235,12 +235,12 @@ func TestStaticPropertyFetchFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_ternary_test.go b/node/expr/t_ternary_test.go index 00baa5b..2d71cf9 100644 --- a/node/expr/t_ternary_test.go +++ b/node/expr/t_ternary_test.go @@ -95,12 +95,12 @@ func TestTernary(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -170,12 +170,12 @@ func TestTernarySimple(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -304,12 +304,12 @@ func TestTernaryNestedTrue(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -438,12 +438,12 @@ func TestTernaryNestedCond(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_unary_test.go b/node/expr/t_unary_test.go index 74abf91..7dbbc7e 100644 --- a/node/expr/t_unary_test.go +++ b/node/expr/t_unary_test.go @@ -61,12 +61,12 @@ func TestUnaryMinus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -119,12 +119,12 @@ func TestUnaryPlus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_variable_test.go b/node/expr/t_variable_test.go index a1547eb..315571e 100644 --- a/node/expr/t_variable_test.go +++ b/node/expr/t_variable_test.go @@ -53,12 +53,12 @@ func TestVariable(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -111,12 +111,12 @@ func TestVariableVariable(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/expr/t_visitor_test.go b/node/expr/t_visitor_test.go index ab28817..7db845e 100644 --- a/node/expr/t_visitor_test.go +++ b/node/expr/t_visitor_test.go @@ -31,11 +31,12 @@ var nodesToTest = []struct { }, { &expr.ArrayItem{ - Key: &scalar.String{Value: "key"}, - Val: &scalar.Lnumber{Value: "1"}, + Key: &scalar.String{Value: "key"}, + Val: &scalar.Lnumber{Value: "1"}, + Unpack: true, }, []string{"Key", "Val"}, - nil, + map[string]interface{}{"Unpack": true}, }, { &expr.Array{ @@ -97,6 +98,18 @@ var nodesToTest = []struct { []string{"Params", "ClosureUse", "ReturnType", "Stmts"}, map[string]interface{}{"ReturnsRef": true, "Static": false, "PhpDocComment": ""}, }, + { + &expr.ArrowFunction{ + ReturnsRef: true, + Static: false, + PhpDocComment: "", + Params: []node.Node{&node.Parameter{}}, + ReturnType: &name.Name{}, + Expr: &expr.Variable{}, + }, + []string{"Params", "ReturnType", "Expr"}, + map[string]interface{}{"ReturnsRef": true, "Static": false, "PhpDocComment": ""}, + }, { &expr.ConstFetch{ Constant: &node.Identifier{Value: "foo"}, diff --git a/node/expr/t_yield_test.go b/node/expr/t_yield_test.go index b7da179..c65b0cb 100644 --- a/node/expr/t_yield_test.go +++ b/node/expr/t_yield_test.go @@ -45,12 +45,12 @@ func TestYield(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -103,12 +103,12 @@ func TestYieldVal(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -178,12 +178,12 @@ func TestYieldKeyVal(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -228,12 +228,12 @@ func TestYieldExpr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -295,12 +295,12 @@ func TestYieldKeyExpr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -353,7 +353,7 @@ func TestYieldFrom(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/name/t_name_test.go b/node/name/t_name_test.go index cbfa9db..6054fa3 100644 --- a/node/name/t_name_test.go +++ b/node/name/t_name_test.go @@ -72,12 +72,12 @@ func TestName(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -140,12 +140,12 @@ func TestFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -208,12 +208,12 @@ func TestRelative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/scalar/t_encapsed_test.go b/node/scalar/t_encapsed_test.go index 8012ffa..bca0025 100644 --- a/node/scalar/t_encapsed_test.go +++ b/node/scalar/t_encapsed_test.go @@ -73,12 +73,12 @@ func TestSimpleVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -142,12 +142,12 @@ func TestSimpleVarOneChar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -220,12 +220,12 @@ func TestSimpleVarEndsEcapsed(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -306,12 +306,12 @@ func TestStringVarCurveOpen(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -401,12 +401,12 @@ func TestSimpleVarPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -470,12 +470,12 @@ func TestDollarOpenCurlyBraces(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -556,12 +556,12 @@ func TestDollarOpenCurlyBracesDimNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -650,12 +650,12 @@ func TestCurlyOpenMethodCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/scalar/t_heredoc_test.go b/node/scalar/t_heredoc_test.go index b44178a..ae0ce1f 100644 --- a/node/scalar/t_heredoc_test.go +++ b/node/scalar/t_heredoc_test.go @@ -86,12 +86,12 @@ LBL; }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -168,12 +168,12 @@ LBL; }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -224,12 +224,12 @@ LBL; }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -268,12 +268,12 @@ CAD; }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -324,12 +324,12 @@ CAD; }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/scalar/t_magic_constant_test.go b/node/scalar/t_magic_constant_test.go index a9241db..af8b520 100644 --- a/node/scalar/t_magic_constant_test.go +++ b/node/scalar/t_magic_constant_test.go @@ -45,12 +45,12 @@ func TestMagicConstant(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/scalar/t_numbers_test.go b/node/scalar/t_numbers_test.go index d7a27bc..0ebe693 100644 --- a/node/scalar/t_numbers_test.go +++ b/node/scalar/t_numbers_test.go @@ -44,12 +44,12 @@ func TestLNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -86,12 +86,12 @@ func TestDNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -128,12 +128,12 @@ func TestFloat(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -170,12 +170,12 @@ func TestBinaryLNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -212,12 +212,12 @@ func TestBinaryDNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -254,12 +254,12 @@ func TestHLNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -296,12 +296,12 @@ func TestHDNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/scalar/t_string_test.go b/node/scalar/t_string_test.go index 6b9424d..3d4bc6e 100644 --- a/node/scalar/t_string_test.go +++ b/node/scalar/t_string_test.go @@ -44,12 +44,12 @@ func TestDoubleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -86,12 +86,12 @@ func TestDoubleQuotedScalarStringWithEscapedVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -130,12 +130,12 @@ func TestMultilineDoubleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -172,12 +172,12 @@ func TestSingleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -216,12 +216,12 @@ func TestMultilineSingleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/n_property_list.go b/node/stmt/n_property_list.go index fd76373..b542c12 100644 --- a/node/stmt/n_property_list.go +++ b/node/stmt/n_property_list.go @@ -12,14 +12,16 @@ type PropertyList struct { FreeFloating freefloating.Collection Position *position.Position Modifiers []node.Node + Type node.Node Properties []node.Node } // NewPropertyList node constructor -func NewPropertyList(Modifiers []node.Node, Properties []node.Node) *PropertyList { +func NewPropertyList(Modifiers []node.Node, Type node.Node, Properties []node.Node) *PropertyList { return &PropertyList{ FreeFloating: nil, Modifiers: Modifiers, + Type: Type, Properties: Properties, } } @@ -60,6 +62,12 @@ func (n *PropertyList) Walk(v walker.Visitor) { v.LeaveChildList("Modifiers", n) } + if n.Type != nil { + v.EnterChildNode("Type", n) + n.Type.Walk(v) + v.LeaveChildNode("Type", n) + } + if n.Properties != nil { v.EnterChildList("Properties", n) for _, nn := range n.Properties { diff --git a/node/stmt/t_alt_if_test.go b/node/stmt/t_alt_if_test.go index 506841c..d8fd58d 100644 --- a/node/stmt/t_alt_if_test.go +++ b/node/stmt/t_alt_if_test.go @@ -64,12 +64,12 @@ func TestAltIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -163,12 +163,12 @@ func TestAltElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -243,12 +243,12 @@ func TestAltElse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -395,12 +395,12 @@ func TestAltElseElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_class_const_list_test.go b/node/stmt/t_class_const_list_test.go index 96c6f3d..ed50cea 100644 --- a/node/stmt/t_class_const_list_test.go +++ b/node/stmt/t_class_const_list_test.go @@ -123,7 +123,7 @@ func TestClassConstList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -227,12 +227,12 @@ func TestClassConstListWithoutModifiers(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_class_method_test.go b/node/stmt/t_class_method_test.go index 8fa029a..f1b116f 100644 --- a/node/stmt/t_class_method_test.go +++ b/node/stmt/t_class_method_test.go @@ -76,12 +76,12 @@ func TestSimpleClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -208,12 +208,12 @@ func TestPrivateProtectedClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -301,7 +301,7 @@ func TestPhp5ClassMethod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -408,7 +408,7 @@ func TestPhp7ClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -506,12 +506,12 @@ func TestAbstractClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -619,7 +619,7 @@ func TestPhp7AbstractClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_class_test.go b/node/stmt/t_class_test.go index 12f9646..9d0c31a 100644 --- a/node/stmt/t_class_test.go +++ b/node/stmt/t_class_test.go @@ -48,12 +48,12 @@ func TestSimpleClass(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -103,12 +103,12 @@ func TestAbstractClass(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -185,12 +185,12 @@ func TestClassExtends(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -269,12 +269,12 @@ func TestClassImplement(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -372,12 +372,12 @@ func TestClassImplements(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -506,7 +506,7 @@ func TestAnonimousClass(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_const_list_test.go b/node/stmt/t_const_list_test.go index 19a7a70..ca274d8 100644 --- a/node/stmt/t_const_list_test.go +++ b/node/stmt/t_const_list_test.go @@ -92,12 +92,12 @@ func TestConstList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_continue_test.go b/node/stmt/t_continue_test.go index 586b546..79bbd5e 100644 --- a/node/stmt/t_continue_test.go +++ b/node/stmt/t_continue_test.go @@ -63,12 +63,12 @@ func TestContinueEmpty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -132,12 +132,12 @@ func TestContinueLight(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -201,12 +201,12 @@ func TestContinue(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_declare_test.go b/node/stmt/t_declare_test.go index ea1812c..a953555 100644 --- a/node/stmt/t_declare_test.go +++ b/node/stmt/t_declare_test.go @@ -73,12 +73,12 @@ func TestDeclare(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -171,12 +171,12 @@ func TestDeclareStmts(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -243,12 +243,12 @@ func TestAltDeclare(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_do_test.go b/node/stmt/t_do_test.go index dfff919..7b2fcd2 100644 --- a/node/stmt/t_do_test.go +++ b/node/stmt/t_do_test.go @@ -54,12 +54,12 @@ func TestDo(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_echo_test.go b/node/stmt/t_echo_test.go index a22e9d6..4ad3965 100644 --- a/node/stmt/t_echo_test.go +++ b/node/stmt/t_echo_test.go @@ -66,12 +66,12 @@ func TestSimpleEcho(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -118,12 +118,12 @@ func TestEcho(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_expression_test.go b/node/stmt/t_expression_test.go index 4c8e4ed..e560be2 100644 --- a/node/stmt/t_expression_test.go +++ b/node/stmt/t_expression_test.go @@ -45,12 +45,12 @@ func TestExpression(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_for_test.go b/node/stmt/t_for_test.go index c2309b8..12f0f32 100644 --- a/node/stmt/t_for_test.go +++ b/node/stmt/t_for_test.go @@ -174,12 +174,12 @@ func TestFor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -279,12 +279,12 @@ func TestAltFor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_foreach_test.go b/node/stmt/t_foreach_test.go index 09d53b2..af7d720 100644 --- a/node/stmt/t_foreach_test.go +++ b/node/stmt/t_foreach_test.go @@ -79,12 +79,12 @@ func TestForeach(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -147,12 +147,12 @@ func TestForeachExpr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -223,12 +223,12 @@ func TestAltForeach(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -316,12 +316,12 @@ func TestForeachWithKey(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -401,12 +401,12 @@ func TestForeachExprWithKey(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -502,12 +502,12 @@ func TestForeachWithRef(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -613,12 +613,12 @@ func TestForeachWithList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_function_test.go b/node/stmt/t_function_test.go index 5908613..4b8fbe3 100644 --- a/node/stmt/t_function_test.go +++ b/node/stmt/t_function_test.go @@ -50,12 +50,12 @@ func TestSimpleFunction(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -104,12 +104,12 @@ func TestFunctionReturn(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -249,12 +249,12 @@ func TestFunctionReturnVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -312,12 +312,12 @@ func TestRefFunction(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -376,7 +376,7 @@ func TestReturnTypeFunction(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_global_test.go b/node/stmt/t_global_test.go index a932d17..1ce5929 100644 --- a/node/stmt/t_global_test.go +++ b/node/stmt/t_global_test.go @@ -55,12 +55,12 @@ func TestGlobal(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -192,12 +192,12 @@ func TestGlobalVars(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_goto_label_test.go b/node/stmt/t_goto_label_test.go index e1ed35a..9a48889 100644 --- a/node/stmt/t_goto_label_test.go +++ b/node/stmt/t_goto_label_test.go @@ -60,12 +60,12 @@ func TestGotoLabel(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_halt_compiler_test.go b/node/stmt/t_halt_compiler_test.go index a9f8ba3..9230e97 100644 --- a/node/stmt/t_halt_compiler_test.go +++ b/node/stmt/t_halt_compiler_test.go @@ -34,12 +34,12 @@ func TestHaltCompiler(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_if_test.go b/node/stmt/t_if_test.go index 6545048..b8c9006 100644 --- a/node/stmt/t_if_test.go +++ b/node/stmt/t_if_test.go @@ -62,12 +62,12 @@ func TestIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -157,12 +157,12 @@ func TestElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -233,12 +233,12 @@ func TestElse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -379,12 +379,12 @@ func TestElseElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -533,12 +533,12 @@ func TestElseIfElseIfElse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_inline_html_test.go b/node/stmt/t_inline_html_test.go index 8edb079..a064099 100644 --- a/node/stmt/t_inline_html_test.go +++ b/node/stmt/t_inline_html_test.go @@ -43,12 +43,12 @@ func TestInlineHtml(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_interface_test.go b/node/stmt/t_interface_test.go index 6bb229c..5b018ec 100644 --- a/node/stmt/t_interface_test.go +++ b/node/stmt/t_interface_test.go @@ -47,12 +47,12 @@ func TestInterface(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -120,12 +120,12 @@ func TestInterfaceExtend(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -212,12 +212,12 @@ func TestInterfaceExtends(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_namespace_test.go b/node/stmt/t_namespace_test.go index 1760aaf..95cff3a 100644 --- a/node/stmt/t_namespace_test.go +++ b/node/stmt/t_namespace_test.go @@ -55,12 +55,12 @@ func TestNamespace(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -108,12 +108,12 @@ func TestNamespaceStmts(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -142,12 +142,12 @@ func TestAnonymousNamespace(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/node/stmt/t_property_list_test.go b/node/stmt/t_property_list_test.go index db03f84..2072d7a 100644 --- a/node/stmt/t_property_list_test.go +++ b/node/stmt/t_property_list_test.go @@ -6,6 +6,7 @@ import ( "gotest.tools/assert" "github.com/z7zmey/php-parser/node/expr" + "github.com/z7zmey/php-parser/node/name" "github.com/z7zmey/php-parser/node/scalar" "github.com/z7zmey/php-parser/position" @@ -96,12 +97,12 @@ func TestProperty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -232,12 +233,12 @@ func TestProperties(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -368,13 +369,119 @@ func TestProperties2(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) } + +func TestPropertyType(t *testing.T) { + src := ` 0 { prevNode := lastNode(yyDollar[1].list) @@ -2352,7 +2345,7 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:306 + //line php5/php5.y:308 { yyVAL.list = []node.Node{} @@ -2360,7 +2353,7 @@ yydefault: } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:315 + //line php5/php5.y:317 { namePart := name.NewNamePart(yyDollar[1].token.Value) yyVAL.list = []node.Node{namePart} @@ -2375,7 +2368,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:328 + //line php5/php5.y:330 { namePart := name.NewNamePart(yyDollar[3].token.Value) yyVAL.list = append(yyDollar[1].list, namePart) @@ -2391,7 +2384,7 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:345 + //line php5/php5.y:347 { // error yyVAL.node = nil @@ -2400,7 +2393,7 @@ yydefault: } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:352 + //line php5/php5.y:354 { yyVAL.node = yyDollar[1].node @@ -2408,7 +2401,7 @@ yydefault: } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:358 + //line php5/php5.y:360 { yyVAL.node = yyDollar[1].node @@ -2416,7 +2409,7 @@ yydefault: } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:364 + //line php5/php5.y:366 { yyVAL.node = yyDollar[1].node @@ -2424,7 +2417,7 @@ yydefault: } case 10: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:370 + //line php5/php5.y:372 { yyVAL.node = stmt.NewHaltCompiler() @@ -2442,7 +2435,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:386 + //line php5/php5.y:388 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2461,7 +2454,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:403 + //line php5/php5.y:405 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2480,7 +2473,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:420 + //line php5/php5.y:422 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2496,7 +2489,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:434 + //line php5/php5.y:436 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2512,7 +2505,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:448 + //line php5/php5.y:450 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2531,7 +2524,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:465 + //line php5/php5.y:467 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2550,7 +2543,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:482 + //line php5/php5.y:484 { yyVAL.node = yyDollar[1].node @@ -2565,7 +2558,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:498 + //line php5/php5.y:500 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2576,7 +2569,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:507 + //line php5/php5.y:509 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2584,7 +2577,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:516 + //line php5/php5.y:518 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2600,7 +2593,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:530 + //line php5/php5.y:532 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2620,7 +2613,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:548 + //line php5/php5.y:550 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2638,7 +2631,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:564 + //line php5/php5.y:566 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2660,7 +2653,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:587 + //line php5/php5.y:589 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2671,7 +2664,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:596 + //line php5/php5.y:598 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2679,7 +2672,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:605 + //line php5/php5.y:607 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2695,7 +2688,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:619 + //line php5/php5.y:621 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2715,7 +2708,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:637 + //line php5/php5.y:639 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2733,7 +2726,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:653 + //line php5/php5.y:655 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2755,7 +2748,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:676 + //line php5/php5.y:678 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2766,7 +2759,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:685 + //line php5/php5.y:687 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2774,7 +2767,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:694 + //line php5/php5.y:696 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2790,7 +2783,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:708 + //line php5/php5.y:710 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2810,7 +2803,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:726 + //line php5/php5.y:728 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2828,7 +2821,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:742 + //line php5/php5.y:744 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2850,7 +2843,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:765 + //line php5/php5.y:767 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -2873,7 +2866,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:786 + //line php5/php5.y:788 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -2894,7 +2887,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:808 + //line php5/php5.y:810 { if inlineHtmlNode, ok := yyDollar[2].node.(*stmt.InlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2909,7 +2902,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:821 + //line php5/php5.y:823 { yyVAL.list = []node.Node{} @@ -2917,7 +2910,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:831 + //line php5/php5.y:833 { // error yyVAL.node = nil @@ -2926,7 +2919,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:838 + //line php5/php5.y:840 { yyVAL.node = yyDollar[1].node @@ -2934,7 +2927,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:844 + //line php5/php5.y:846 { yyVAL.node = yyDollar[1].node @@ -2942,7 +2935,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:850 + //line php5/php5.y:852 { yyVAL.node = yyDollar[1].node @@ -2950,7 +2943,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:856 + //line php5/php5.y:858 { yyVAL.node = stmt.NewHaltCompiler() @@ -2968,7 +2961,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:876 + //line php5/php5.y:878 { yyVAL.node = yyDollar[1].node @@ -2976,7 +2969,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:882 + //line php5/php5.y:884 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -2993,7 +2986,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:900 + //line php5/php5.y:902 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3008,7 +3001,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:913 + //line php5/php5.y:915 { yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) @@ -3036,7 +3029,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:937 + //line php5/php5.y:939 { stmts := stmt.NewStmtList(yyDollar[4].list) yyVAL.node = stmt.NewAltIf(yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node) @@ -3064,7 +3057,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:961 + //line php5/php5.y:963 { switch n := yyDollar[3].node.(type) { case *stmt.While: @@ -3093,7 +3086,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:986 + //line php5/php5.y:988 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) @@ -3118,7 +3111,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1007 + //line php5/php5.y:1009 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3147,7 +3140,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1034 + //line php5/php5.y:1036 { switch n := yyDollar[3].node.(type) { case *stmt.Switch: @@ -3178,7 +3171,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1061 + //line php5/php5.y:1063 { yyVAL.node = stmt.NewBreak(nil) @@ -3194,7 +3187,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1075 + //line php5/php5.y:1077 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3210,7 +3203,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1089 + //line php5/php5.y:1091 { yyVAL.node = stmt.NewContinue(nil) @@ -3226,7 +3219,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1103 + //line php5/php5.y:1105 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3242,7 +3235,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1117 + //line php5/php5.y:1119 { yyVAL.node = stmt.NewReturn(nil) @@ -3258,7 +3251,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1131 + //line php5/php5.y:1133 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3274,7 +3267,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1145 + //line php5/php5.y:1147 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3290,7 +3283,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1159 + //line php5/php5.y:1161 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3306,7 +3299,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1173 + //line php5/php5.y:1175 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3322,7 +3315,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1187 + //line php5/php5.y:1189 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3338,7 +3331,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1201 + //line php5/php5.y:1203 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3355,7 +3348,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1216 + //line php5/php5.y:1218 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3369,7 +3362,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1228 + //line php5/php5.y:1230 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3385,7 +3378,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1242 + //line php5/php5.y:1244 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3403,7 +3396,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1258 + //line php5/php5.y:1260 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3446,7 +3439,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1298 + //line php5/php5.y:1300 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3489,7 +3482,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1338 + //line php5/php5.y:1340 { yyVAL.node = yyDollar[5].node yyVAL.node.(*stmt.Declare).Consts = yyDollar[3].list @@ -3506,7 +3499,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1353 + //line php5/php5.y:1355 { yyVAL.node = stmt.NewNop() @@ -3521,7 +3514,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1366 + //line php5/php5.y:1368 { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3541,7 +3534,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1384 + //line php5/php5.y:1386 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3557,7 +3550,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1398 + //line php5/php5.y:1400 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3576,7 +3569,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1418 + //line php5/php5.y:1420 { yyVAL.list = []node.Node{} @@ -3584,7 +3577,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1424 + //line php5/php5.y:1426 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3609,7 +3602,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1450 + //line php5/php5.y:1452 { yyVAL.node = nil @@ -3617,7 +3610,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1456 + //line php5/php5.y:1458 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3633,7 +3626,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1473 + //line php5/php5.y:1475 { yyVAL.list = yyDollar[1].list @@ -3641,7 +3634,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1479 + //line php5/php5.y:1481 { yyVAL.list = []node.Node{} @@ -3649,7 +3642,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1488 + //line php5/php5.y:1490 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3657,7 +3650,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1494 + //line php5/php5.y:1496 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3665,7 +3658,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1503 + //line php5/php5.y:1505 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3689,7 +3682,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1528 + //line php5/php5.y:1530 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3697,7 +3690,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1534 + //line php5/php5.y:1536 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3708,7 +3701,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1546 + //line php5/php5.y:1548 { yyVAL.node = yyDollar[1].node @@ -3716,7 +3709,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1555 + //line php5/php5.y:1557 { yyVAL.node = yyDollar[1].node @@ -3724,7 +3717,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1564 + //line php5/php5.y:1566 { yyVAL.node = yyDollar[1].node @@ -3732,31 +3725,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1573 + //line php5/php5.y:1575 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1577 + //line php5/php5.y:1579 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1584 + //line php5/php5.y:1586 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1588 + //line php5/php5.y:1590 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1595 + //line php5/php5.y:1597 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[5].list, nil, yyDollar[8].list, "") @@ -3782,7 +3775,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:1622 + //line php5/php5.y:1624 { name := node.NewIdentifier(yyDollar[2].token.Value) switch n := yyDollar[1].node.(type) { @@ -3812,7 +3805,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1650 + //line php5/php5.y:1652 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[5].list, "") @@ -3831,7 +3824,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1671 + //line php5/php5.y:1673 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") @@ -3845,7 +3838,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1683 + //line php5/php5.y:1685 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3862,7 +3855,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1698 + //line php5/php5.y:1700 { yyVAL.node = stmt.NewTrait(nil, nil, "") @@ -3876,7 +3869,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1710 + //line php5/php5.y:1712 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3893,7 +3886,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1728 + //line php5/php5.y:1730 { yyVAL.ClassExtends = nil @@ -3901,7 +3894,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1734 + //line php5/php5.y:1736 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3915,13 +3908,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1749 + //line php5/php5.y:1751 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1756 + //line php5/php5.y:1758 { yyVAL.InterfaceExtends = nil @@ -3929,7 +3922,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1762 + //line php5/php5.y:1764 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3943,7 +3936,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1777 + //line php5/php5.y:1779 { yyVAL.ClassImplements = nil @@ -3951,7 +3944,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1783 + //line php5/php5.y:1785 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3965,7 +3958,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1798 + //line php5/php5.y:1800 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3973,7 +3966,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1804 + //line php5/php5.y:1806 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3984,7 +3977,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1816 + //line php5/php5.y:1818 { yyVAL.node = nil @@ -3992,7 +3985,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1822 + //line php5/php5.y:1824 { yyVAL.node = yyDollar[2].node @@ -4003,7 +3996,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1834 + //line php5/php5.y:1836 { yyVAL.node = yyDollar[1].node @@ -4011,7 +4004,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1840 + //line php5/php5.y:1842 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -4025,7 +4018,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1852 + //line php5/php5.y:1854 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -4041,7 +4034,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1869 + //line php5/php5.y:1871 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -4052,7 +4045,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1878 + //line php5/php5.y:1880 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4071,7 +4064,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1898 + //line php5/php5.y:1900 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4082,7 +4075,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1907 + //line php5/php5.y:1909 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4101,7 +4094,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1928 + //line php5/php5.y:1930 { yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) @@ -4112,7 +4105,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1937 + //line php5/php5.y:1939 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewDeclare(nil, stmtList, true) @@ -4131,7 +4124,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1958 + //line php5/php5.y:1960 { name := node.NewIdentifier(yyDollar[1].token.Value) constant := stmt.NewConstant(name, yyDollar[3].node, "") @@ -4149,7 +4142,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1974 + //line php5/php5.y:1976 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -4168,7 +4161,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1995 + //line php5/php5.y:1997 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4185,7 +4178,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2010 + //line php5/php5.y:2012 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4203,7 +4196,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2026 + //line php5/php5.y:2028 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4222,7 +4215,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2043 + //line php5/php5.y:2045 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4243,7 +4236,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2066 + //line php5/php5.y:2068 { yyVAL.list = []node.Node{} @@ -4251,7 +4244,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2072 + //line php5/php5.y:2074 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4268,7 +4261,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2087 + //line php5/php5.y:2089 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4285,19 +4278,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2106 + //line php5/php5.y:2108 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2110 + //line php5/php5.y:2112 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2118 + //line php5/php5.y:2120 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4308,7 +4301,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2127 + //line php5/php5.y:2129 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4327,7 +4320,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2149 + //line php5/php5.y:2151 { yyVAL.list = nil @@ -4335,7 +4328,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2155 + //line php5/php5.y:2157 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4358,7 +4351,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2178 + //line php5/php5.y:2180 { yyVAL.list = nil @@ -4366,7 +4359,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2184 + //line php5/php5.y:2186 { stmts := stmt.NewStmtList(yyDollar[5].list) _elseIf := stmt.NewAltElseIf(yyDollar[3].node, stmts) @@ -4392,7 +4385,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2210 + //line php5/php5.y:2212 { yyVAL.node = nil @@ -4400,7 +4393,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2216 + //line php5/php5.y:2218 { yyVAL.node = stmt.NewElse(yyDollar[2].node) @@ -4414,7 +4407,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2232 + //line php5/php5.y:2234 { yyVAL.node = nil @@ -4422,7 +4415,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2238 + //line php5/php5.y:2240 { stmts := stmt.NewStmtList(yyDollar[3].list) yyVAL.node = stmt.NewAltElse(stmts) @@ -4439,7 +4432,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2257 + //line php5/php5.y:2259 { yyVAL.list = yyDollar[1].list @@ -4447,7 +4440,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2263 + //line php5/php5.y:2265 { yyVAL.list = nil @@ -4455,7 +4448,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2272 + //line php5/php5.y:2274 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4463,7 +4456,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2278 + //line php5/php5.y:2280 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4474,7 +4467,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2290 + //line php5/php5.y:2292 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4524,7 +4517,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:2335 + //line php5/php5.y:2337 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4575,7 +4568,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2385 + //line php5/php5.y:2387 { yyVAL.node = nil @@ -4583,7 +4576,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2391 + //line php5/php5.y:2393 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4597,7 +4590,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2403 + //line php5/php5.y:2405 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4611,7 +4604,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2415 + //line php5/php5.y:2417 { yyVAL.node = yyDollar[1].node @@ -4619,7 +4612,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2425 + //line php5/php5.y:2427 { yyVAL.node = node.NewArgumentList(nil) @@ -4634,7 +4627,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2438 + //line php5/php5.y:2440 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4649,7 +4642,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2451 + //line php5/php5.y:2453 { arg := node.NewArgument(yyDollar[2].node, false, false) yyVAL.node = node.NewArgumentList([]node.Node{arg}) @@ -4666,7 +4659,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2470 + //line php5/php5.y:2472 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4674,7 +4667,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2476 + //line php5/php5.y:2478 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4685,7 +4678,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2488 + //line php5/php5.y:2490 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4699,7 +4692,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2500 + //line php5/php5.y:2502 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4713,7 +4706,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2512 + //line php5/php5.y:2514 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) @@ -4727,7 +4720,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2524 + //line php5/php5.y:2526 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4741,7 +4734,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2539 + //line php5/php5.y:2541 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4752,7 +4745,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2548 + //line php5/php5.y:2550 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4760,7 +4753,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2558 + //line php5/php5.y:2560 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -4777,7 +4770,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2573 + //line php5/php5.y:2575 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -4792,7 +4785,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2586 + //line php5/php5.y:2588 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -4809,7 +4802,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2605 + //line php5/php5.y:2607 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4830,7 +4823,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2624 + //line php5/php5.y:2626 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4852,7 +4845,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2644 + //line php5/php5.y:2646 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4872,7 +4865,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2662 + //line php5/php5.y:2664 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4893,7 +4886,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2685 + //line php5/php5.y:2687 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4901,7 +4894,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2691 + //line php5/php5.y:2693 { yyVAL.list = []node.Node{} @@ -4909,9 +4902,9 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2701 + //line php5/php5.y:2703 { - yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) + yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, nil, yyDollar[2].list) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) @@ -4925,7 +4918,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2715 + //line php5/php5.y:2717 { yyVAL.node = yyDollar[1].node @@ -4940,7 +4933,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2728 + //line php5/php5.y:2730 { yyVAL.node = yyDollar[1].node @@ -4948,7 +4941,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:2734 + //line php5/php5.y:2736 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[6].list, nil, yyDollar[8].node, "") @@ -4981,7 +4974,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2768 + //line php5/php5.y:2770 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4995,7 +4988,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2783 + //line php5/php5.y:2785 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5003,7 +4996,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2789 + //line php5/php5.y:2791 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5014,7 +5007,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2801 + //line php5/php5.y:2803 { yyVAL.node = stmt.NewNop() @@ -5028,7 +5021,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2813 + //line php5/php5.y:2815 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -5042,7 +5035,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2828 + //line php5/php5.y:2830 { yyVAL.list = nil @@ -5050,7 +5043,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2834 + //line php5/php5.y:2836 { yyVAL.list = yyDollar[1].list @@ -5058,7 +5051,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2843 + //line php5/php5.y:2845 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5066,7 +5059,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2849 + //line php5/php5.y:2851 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5074,7 +5067,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2858 + //line php5/php5.y:2860 { yyVAL.node = yyDollar[1].node @@ -5086,7 +5079,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2868 + //line php5/php5.y:2870 { yyVAL.node = yyDollar[1].node @@ -5098,7 +5091,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2881 + //line php5/php5.y:2883 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -5113,7 +5106,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2897 + //line php5/php5.y:2899 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5121,7 +5114,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2903 + //line php5/php5.y:2905 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5132,7 +5125,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2915 + //line php5/php5.y:2917 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5148,7 +5141,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2929 + //line php5/php5.y:2931 { yyVAL.node = yyDollar[1].node @@ -5156,7 +5149,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2938 + //line php5/php5.y:2940 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5174,7 +5167,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2957 + //line php5/php5.y:2959 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5192,7 +5185,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2973 + //line php5/php5.y:2975 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5207,7 +5200,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2989 + //line php5/php5.y:2991 { yyVAL.node = nil @@ -5215,7 +5208,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2995 + //line php5/php5.y:2997 { yyVAL.node = yyDollar[1].node @@ -5223,7 +5216,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3004 + //line php5/php5.y:3006 { yyVAL.node = stmt.NewNop() @@ -5238,7 +5231,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3017 + //line php5/php5.y:3019 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5253,7 +5246,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3033 + //line php5/php5.y:3035 { yyVAL.list = yyDollar[1].list @@ -5261,7 +5254,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3039 + //line php5/php5.y:3041 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5276,7 +5269,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3055 + //line php5/php5.y:3057 { yyVAL.list = nil @@ -5284,7 +5277,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3061 + //line php5/php5.y:3063 { yyVAL.list = yyDollar[1].list @@ -5292,7 +5285,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3070 + //line php5/php5.y:3072 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5300,7 +5293,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3076 + //line php5/php5.y:3078 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5308,7 +5301,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3085 + //line php5/php5.y:3087 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5322,7 +5315,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3097 + //line php5/php5.y:3099 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5336,7 +5329,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3109 + //line php5/php5.y:3111 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5350,7 +5343,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3121 + //line php5/php5.y:3123 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5364,7 +5357,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3133 + //line php5/php5.y:3135 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5378,7 +5371,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3145 + //line php5/php5.y:3147 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5392,7 +5385,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3160 + //line php5/php5.y:3162 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5413,7 +5406,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3179 + //line php5/php5.y:3181 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5435,7 +5428,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3199 + //line php5/php5.y:3201 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5455,7 +5448,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3217 + //line php5/php5.y:3219 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5476,7 +5469,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3239 + //line php5/php5.y:3241 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -5499,7 +5492,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3260 + //line php5/php5.y:3262 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -5519,7 +5512,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3281 + //line php5/php5.y:3283 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5530,7 +5523,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3290 + //line php5/php5.y:3292 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5538,7 +5531,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3300 + //line php5/php5.y:3302 { yyVAL.list = nil @@ -5546,7 +5539,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3306 + //line php5/php5.y:3308 { yyVAL.list = yyDollar[1].list @@ -5554,7 +5547,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3315 + //line php5/php5.y:3317 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5565,7 +5558,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3324 + //line php5/php5.y:3326 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5573,7 +5566,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3333 + //line php5/php5.y:3335 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5581,7 +5574,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3339 + //line php5/php5.y:3341 { yyVAL.list = yyDollar[1].list @@ -5589,7 +5582,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3348 + //line php5/php5.y:3350 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -5605,7 +5598,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3362 + //line php5/php5.y:3364 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yyVAL.list = []node.Node{fetch} @@ -5621,7 +5614,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3379 + //line php5/php5.y:3381 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5629,7 +5622,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3385 + //line php5/php5.y:3387 { yyVAL.list = yyDollar[1].list @@ -5637,7 +5630,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3391 + //line php5/php5.y:3393 { yyVAL.list = yyDollar[1].list @@ -5645,7 +5638,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3400 + //line php5/php5.y:3402 { yyVAL.list = nil @@ -5653,7 +5646,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3406 + //line php5/php5.y:3408 { yyVAL.list = yyDollar[1].list @@ -5661,7 +5654,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3415 + //line php5/php5.y:3417 { if yyDollar[3].node != nil { @@ -5679,7 +5672,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3434 + //line php5/php5.y:3436 { listNode := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(listNode, yyDollar[6].node) @@ -5698,7 +5691,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3451 + //line php5/php5.y:3453 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5713,7 +5706,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3464 + //line php5/php5.y:3466 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5729,7 +5722,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3478 + //line php5/php5.y:3480 { var _new *expr.New @@ -5758,7 +5751,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3505 + //line php5/php5.y:3507 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5772,7 +5765,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3517 + //line php5/php5.y:3519 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5786,7 +5779,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3529 + //line php5/php5.y:3531 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5801,7 +5794,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3542 + //line php5/php5.y:3544 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5816,7 +5809,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3555 + //line php5/php5.y:3557 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5831,7 +5824,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3568 + //line php5/php5.y:3570 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5846,7 +5839,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3581 + //line php5/php5.y:3583 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5861,7 +5854,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3594 + //line php5/php5.y:3596 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5876,7 +5869,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3607 + //line php5/php5.y:3609 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5891,7 +5884,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3620 + //line php5/php5.y:3622 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5906,7 +5899,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3633 + //line php5/php5.y:3635 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5921,7 +5914,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3646 + //line php5/php5.y:3648 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5936,7 +5929,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3659 + //line php5/php5.y:3661 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5951,7 +5944,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3672 + //line php5/php5.y:3674 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5966,7 +5959,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3685 + //line php5/php5.y:3687 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5980,7 +5973,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3697 + //line php5/php5.y:3699 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5995,7 +5988,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3710 + //line php5/php5.y:3712 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -6009,7 +6002,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3722 + //line php5/php5.y:3724 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -6024,7 +6017,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3735 + //line php5/php5.y:3737 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -6039,7 +6032,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3748 + //line php5/php5.y:3750 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -6054,7 +6047,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3761 + //line php5/php5.y:3763 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -6069,7 +6062,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3774 + //line php5/php5.y:3776 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -6084,7 +6077,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3787 + //line php5/php5.y:3789 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -6099,7 +6092,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3800 + //line php5/php5.y:3802 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -6114,7 +6107,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3813 + //line php5/php5.y:3815 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -6129,7 +6122,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3826 + //line php5/php5.y:3828 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -6144,7 +6137,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3839 + //line php5/php5.y:3841 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -6159,7 +6152,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3852 + //line php5/php5.y:3854 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -6174,7 +6167,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3865 + //line php5/php5.y:3867 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -6189,7 +6182,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3878 + //line php5/php5.y:3880 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -6204,7 +6197,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3891 + //line php5/php5.y:3893 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -6219,7 +6212,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3904 + //line php5/php5.y:3906 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6234,7 +6227,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3917 + //line php5/php5.y:3919 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6249,7 +6242,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3930 + //line php5/php5.y:3932 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6264,7 +6257,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3943 + //line php5/php5.y:3945 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6278,7 +6271,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3955 + //line php5/php5.y:3957 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6292,7 +6285,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3967 + //line php5/php5.y:3969 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6306,7 +6299,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3979 + //line php5/php5.y:3981 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6320,7 +6313,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3991 + //line php5/php5.y:3993 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6335,7 +6328,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4004 + //line php5/php5.y:4006 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6350,7 +6343,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4017 + //line php5/php5.y:4019 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6365,7 +6358,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4030 + //line php5/php5.y:4032 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6381,7 +6374,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4044 + //line php5/php5.y:4046 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6396,7 +6389,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4057 + //line php5/php5.y:4059 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6411,7 +6404,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4070 + //line php5/php5.y:4072 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6426,7 +6419,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4083 + //line php5/php5.y:4085 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6441,7 +6434,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4096 + //line php5/php5.y:4098 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6456,7 +6449,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4109 + //line php5/php5.y:4111 { yyVAL.node = yyDollar[1].node @@ -6469,7 +6462,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4118 + //line php5/php5.y:4120 { yyVAL.node = yyDollar[1].node @@ -6477,7 +6470,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4124 + //line php5/php5.y:4126 { yyVAL.node = yyDollar[2].node @@ -6511,7 +6504,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:4156 + //line php5/php5.y:4158 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6527,7 +6520,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4170 + //line php5/php5.y:4172 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6543,7 +6536,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4184 + //line php5/php5.y:4186 { yyVAL.node = yyDollar[1].node @@ -6551,7 +6544,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4190 + //line php5/php5.y:4192 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6566,7 +6559,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4203 + //line php5/php5.y:4205 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6581,7 +6574,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4216 + //line php5/php5.y:4218 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6596,7 +6589,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4229 + //line php5/php5.y:4231 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6611,7 +6604,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4242 + //line php5/php5.y:4244 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6626,7 +6619,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4255 + //line php5/php5.y:4257 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6641,7 +6634,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4268 + //line php5/php5.y:4270 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6656,7 +6649,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4281 + //line php5/php5.y:4283 { e := yyDollar[2].node.(*expr.Exit) yyVAL.node = yyDollar[2].node @@ -6679,7 +6672,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4302 + //line php5/php5.y:4304 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6693,7 +6686,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4314 + //line php5/php5.y:4316 { yyVAL.node = yyDollar[1].node @@ -6701,7 +6694,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4320 + //line php5/php5.y:4322 { yyVAL.node = yyDollar[1].node @@ -6709,7 +6702,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4326 + //line php5/php5.y:4328 { yyVAL.node = yyDollar[1].node @@ -6717,7 +6710,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4332 + //line php5/php5.y:4334 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6731,7 +6724,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4344 + //line php5/php5.y:4346 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6745,7 +6738,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4356 + //line php5/php5.y:4358 { yyVAL.node = expr.NewYield(nil, nil) @@ -6759,7 +6752,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:4368 + //line php5/php5.y:4370 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") @@ -6788,7 +6781,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:4394 + //line php5/php5.y:4396 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") @@ -6818,7 +6811,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4424 + //line php5/php5.y:4426 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6832,7 +6825,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4436 + //line php5/php5.y:4438 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6846,7 +6839,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4448 + //line php5/php5.y:4450 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6861,7 +6854,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4461 + //line php5/php5.y:4463 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6876,7 +6869,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4477 + //line php5/php5.y:4479 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6892,7 +6885,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4491 + //line php5/php5.y:4493 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6908,7 +6901,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4505 + //line php5/php5.y:4507 { str := scalar.NewString(yyDollar[1].token.Value) yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) @@ -6926,7 +6919,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4521 + //line php5/php5.y:4523 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6942,7 +6935,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4538 + //line php5/php5.y:4540 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6958,7 +6951,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4552 + //line php5/php5.y:4554 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6973,13 +6966,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4568 + //line php5/php5.y:4570 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4575 + //line php5/php5.y:4577 { yyVAL.ClosureUse = nil @@ -6987,7 +6980,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4581 + //line php5/php5.y:4583 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -7003,7 +6996,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4598 + //line php5/php5.y:4600 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7022,7 +7015,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4615 + //line php5/php5.y:4617 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7044,7 +7037,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4635 + //line php5/php5.y:4637 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7062,7 +7055,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4651 + //line php5/php5.y:4653 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7083,7 +7076,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4673 + //line php5/php5.y:4675 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) @@ -7099,7 +7092,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4687 + //line php5/php5.y:4689 { funcName := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) @@ -7116,7 +7109,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4702 + //line php5/php5.y:4704 { funcName := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) @@ -7132,7 +7125,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4716 + //line php5/php5.y:4718 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7147,7 +7140,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4729 + //line php5/php5.y:4731 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7162,7 +7155,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4742 + //line php5/php5.y:4744 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7177,7 +7170,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4755 + //line php5/php5.y:4757 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7192,7 +7185,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4768 + //line php5/php5.y:4770 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -7206,7 +7199,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4783 + //line php5/php5.y:4785 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7220,7 +7213,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4795 + //line php5/php5.y:4797 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -7234,7 +7227,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4807 + //line php5/php5.y:4809 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -7249,7 +7242,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4820 + //line php5/php5.y:4822 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -7263,7 +7256,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4835 + //line php5/php5.y:4837 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -7277,7 +7270,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4847 + //line php5/php5.y:4849 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -7292,7 +7285,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4860 + //line php5/php5.y:4862 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -7306,7 +7299,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4875 + //line php5/php5.y:4877 { yyVAL.node = yyDollar[1].node @@ -7314,7 +7307,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4881 + //line php5/php5.y:4883 { yyVAL.node = yyDollar[1].node @@ -7322,7 +7315,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4890 + //line php5/php5.y:4892 { yyVAL.node = yyDollar[1].node @@ -7365,7 +7358,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4931 + //line php5/php5.y:4933 { yyVAL.node = yyDollar[1].node @@ -7373,7 +7366,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4941 + //line php5/php5.y:4943 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7381,7 +7374,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4947 + //line php5/php5.y:4949 { yyVAL.list = []node.Node{} @@ -7389,7 +7382,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4957 + //line php5/php5.y:4959 { yyVAL.list = yyDollar[2].list @@ -7400,7 +7393,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4969 + //line php5/php5.y:4971 { yyVAL.node = expr.NewExit(nil) @@ -7408,7 +7401,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4975 + //line php5/php5.y:4977 { yyVAL.node = expr.NewExit(nil) @@ -7423,7 +7416,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4988 + //line php5/php5.y:4990 { yyVAL.node = expr.NewExit(yyDollar[1].node) @@ -7444,7 +7437,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5008 + //line php5/php5.y:5010 { yyVAL.list = []node.Node{} @@ -7452,7 +7445,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5014 + //line php5/php5.y:5016 { part := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{part} @@ -7464,7 +7457,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5024 + //line php5/php5.y:5026 { yyVAL.list = yyDollar[1].list @@ -7472,7 +7465,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5033 + //line php5/php5.y:5035 { yyVAL.node = nil @@ -7480,7 +7473,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5039 + //line php5/php5.y:5041 { yyVAL.node = yyDollar[1].node @@ -7488,7 +7481,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5048 + //line php5/php5.y:5050 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -7502,7 +7495,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5060 + //line php5/php5.y:5062 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -7516,7 +7509,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5072 + //line php5/php5.y:5074 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7530,7 +7523,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5084 + //line php5/php5.y:5086 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7544,7 +7537,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5096 + //line php5/php5.y:5098 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7558,7 +7551,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5108 + //line php5/php5.y:5110 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7572,7 +7565,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5120 + //line php5/php5.y:5122 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7586,7 +7579,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5132 + //line php5/php5.y:5134 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7600,7 +7593,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5144 + //line php5/php5.y:5146 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7614,7 +7607,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5156 + //line php5/php5.y:5158 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7628,7 +7621,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5168 + //line php5/php5.y:5170 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7644,7 +7637,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5182 + //line php5/php5.y:5184 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7658,7 +7651,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5197 + //line php5/php5.y:5199 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7676,7 +7669,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5216 + //line php5/php5.y:5218 { yyVAL.node = yyDollar[1].node @@ -7684,7 +7677,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5225 + //line php5/php5.y:5227 { yyVAL.node = yyDollar[1].node @@ -7692,7 +7685,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5231 + //line php5/php5.y:5233 { yyVAL.node = yyDollar[1].node @@ -7700,7 +7693,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5237 + //line php5/php5.y:5239 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7716,7 +7709,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5251 + //line php5/php5.y:5253 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7733,7 +7726,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5266 + //line php5/php5.y:5268 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7749,7 +7742,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5280 + //line php5/php5.y:5282 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -7765,7 +7758,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5294 + //line php5/php5.y:5296 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -7780,7 +7773,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5307 + //line php5/php5.y:5309 { yyVAL.node = yyDollar[1].node @@ -7788,7 +7781,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5313 + //line php5/php5.y:5315 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7802,7 +7795,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5325 + //line php5/php5.y:5327 { yyVAL.node = yyDollar[1].node @@ -7810,7 +7803,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5334 + //line php5/php5.y:5336 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7826,7 +7819,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5348 + //line php5/php5.y:5350 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -7841,7 +7834,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5361 + //line php5/php5.y:5363 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -7856,7 +7849,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5374 + //line php5/php5.y:5376 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -7871,7 +7864,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5387 + //line php5/php5.y:5389 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -7886,7 +7879,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5400 + //line php5/php5.y:5402 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -7901,7 +7894,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5413 + //line php5/php5.y:5415 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -7916,7 +7909,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5426 + //line php5/php5.y:5428 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -7930,7 +7923,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5438 + //line php5/php5.y:5440 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -7944,7 +7937,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5450 + //line php5/php5.y:5452 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -7959,7 +7952,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5463 + //line php5/php5.y:5465 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -7974,7 +7967,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5476 + //line php5/php5.y:5478 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -7989,7 +7982,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5489 + //line php5/php5.y:5491 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -8004,7 +7997,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5502 + //line php5/php5.y:5504 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -8019,7 +8012,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5515 + //line php5/php5.y:5517 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -8034,7 +8027,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5528 + //line php5/php5.y:5530 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -8049,7 +8042,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5541 + //line php5/php5.y:5543 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -8064,7 +8057,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5554 + //line php5/php5.y:5556 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -8079,7 +8072,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5567 + //line php5/php5.y:5569 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -8094,7 +8087,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5580 + //line php5/php5.y:5582 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -8109,7 +8102,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5593 + //line php5/php5.y:5595 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -8124,7 +8117,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5606 + //line php5/php5.y:5608 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -8139,7 +8132,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5619 + //line php5/php5.y:5621 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -8154,7 +8147,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5632 + //line php5/php5.y:5634 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -8170,7 +8163,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5646 + //line php5/php5.y:5648 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -8185,7 +8178,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5659 + //line php5/php5.y:5661 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -8200,7 +8193,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5672 + //line php5/php5.y:5674 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -8215,7 +8208,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5685 + //line php5/php5.y:5687 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -8230,7 +8223,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5698 + //line php5/php5.y:5700 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -8246,7 +8239,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5712 + //line php5/php5.y:5714 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -8262,7 +8255,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5726 + //line php5/php5.y:5728 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -8276,7 +8269,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5738 + //line php5/php5.y:5740 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -8290,7 +8283,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5750 + //line php5/php5.y:5752 { yyVAL.node = yyDollar[2].node @@ -8302,7 +8295,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5763 + //line php5/php5.y:5765 { yyVAL.node = yyDollar[1].node @@ -8310,7 +8303,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5769 + //line php5/php5.y:5771 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -8326,7 +8319,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5783 + //line php5/php5.y:5785 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -8343,7 +8336,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5798 + //line php5/php5.y:5800 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -8359,7 +8352,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5815 + //line php5/php5.y:5817 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = expr.NewVariable(name) @@ -8375,7 +8368,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5829 + //line php5/php5.y:5831 { yyVAL.node = yyDollar[1].node @@ -8383,7 +8376,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5835 + //line php5/php5.y:5837 { yyVAL.node = yyDollar[1].node @@ -8391,7 +8384,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5841 + //line php5/php5.y:5843 { yyVAL.node = yyDollar[1].node @@ -8399,7 +8392,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5847 + //line php5/php5.y:5849 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -8413,7 +8406,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5859 + //line php5/php5.y:5861 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -8427,7 +8420,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5871 + //line php5/php5.y:5873 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -8441,7 +8434,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5886 + //line php5/php5.y:5888 { yyVAL.list = nil @@ -8449,7 +8442,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5892 + //line php5/php5.y:5894 { yyVAL.list = yyDollar[1].list @@ -8462,21 +8455,21 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5906 + //line php5/php5.y:5908 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5910 + //line php5/php5.y:5912 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5917 + //line php5/php5.y:5919 { - arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) + arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position @@ -8491,9 +8484,9 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5932 + //line php5/php5.y:5934 { - arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) + arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position @@ -8507,9 +8500,9 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5946 + //line php5/php5.y:5948 { - arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) + arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) yyVAL.list = []node.Node{arrayItem} // save position @@ -8523,9 +8516,9 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5960 + //line php5/php5.y:5962 { - arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) + arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) yyVAL.list = []node.Node{arrayItem} // save position @@ -8538,7 +8531,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5976 + //line php5/php5.y:5978 { yyVAL.node = yyDollar[1].node @@ -8546,7 +8539,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5982 + //line php5/php5.y:5984 { yyVAL.node = yyDollar[1].node @@ -8554,7 +8547,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5991 + //line php5/php5.y:5993 { yyVAL.node = yyDollar[2].node @@ -8572,7 +8565,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6007 + //line php5/php5.y:6009 { yyVAL.node = yyDollar[2].node @@ -8590,7 +8583,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6027 + //line php5/php5.y:6029 { yyVAL.node = yyDollar[1].node @@ -8598,7 +8591,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6037 + //line php5/php5.y:6039 { yyVAL.node = yyDollar[1].node @@ -8606,7 +8599,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6046 + //line php5/php5.y:6048 { yyVAL.node = yyDollar[1].node @@ -8614,7 +8607,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6055 + //line php5/php5.y:6057 { yyVAL.node = yyDollar[1].node @@ -8674,7 +8667,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6113 + //line php5/php5.y:6115 { yyVAL.node = yyDollar[1].node @@ -8682,7 +8675,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6122 + //line php5/php5.y:6124 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8690,7 +8683,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6128 + //line php5/php5.y:6130 { yyVAL.list = []node.Node{} @@ -8698,7 +8691,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6138 + //line php5/php5.y:6140 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property @@ -8714,7 +8707,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6155 + //line php5/php5.y:6157 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8730,7 +8723,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6169 + //line php5/php5.y:6171 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = []node.Node{yyDollar[1].node, fetch} @@ -8746,7 +8739,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6186 + //line php5/php5.y:6188 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) @@ -8757,7 +8750,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6198 + //line php5/php5.y:6200 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8765,7 +8758,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6204 + //line php5/php5.y:6206 { yyVAL.list = yyDollar[1].list @@ -8773,7 +8766,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6210 + //line php5/php5.y:6212 { yyVAL.list = nil @@ -8781,7 +8774,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6219 + //line php5/php5.y:6221 { yyVAL.node = yyDollar[1].node @@ -8789,7 +8782,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6225 + //line php5/php5.y:6227 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8803,7 +8796,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6240 + //line php5/php5.y:6242 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8818,7 +8811,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6253 + //line php5/php5.y:6255 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8833,7 +8826,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6269 + //line php5/php5.y:6271 { yyVAL.node = yyDollar[1].node @@ -8841,7 +8834,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6278 + //line php5/php5.y:6280 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8857,7 +8850,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6292 + //line php5/php5.y:6294 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8873,7 +8866,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6309 + //line php5/php5.y:6311 { yyVAL.node = yyDollar[1].node @@ -8881,7 +8874,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6315 + //line php5/php5.y:6317 { yyVAL.node = yyDollar[1].node @@ -8889,7 +8882,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6321 + //line php5/php5.y:6323 { yyVAL.node = yyDollar[1].node @@ -8897,7 +8890,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6331 + //line php5/php5.y:6333 { yyVAL.node = yyDollar[1].node @@ -8905,7 +8898,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6337 + //line php5/php5.y:6339 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8919,7 +8912,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6349 + //line php5/php5.y:6351 { yyVAL.node = yyDollar[1].node @@ -8927,7 +8920,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6358 + //line php5/php5.y:6360 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8943,7 +8936,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6372 + //line php5/php5.y:6374 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8959,7 +8952,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6386 + //line php5/php5.y:6388 { yyVAL.node = yyDollar[1].node @@ -8967,7 +8960,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6396 + //line php5/php5.y:6398 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -8984,7 +8977,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6411 + //line php5/php5.y:6413 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -9001,7 +8994,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6429 + //line php5/php5.y:6431 { yyVAL.node = nil @@ -9009,7 +9002,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6435 + //line php5/php5.y:6437 { yyVAL.node = yyDollar[1].node @@ -9017,7 +9010,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6445 + //line php5/php5.y:6447 { yyVAL.list = yyDollar[1].list @@ -9025,7 +9018,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6451 + //line php5/php5.y:6453 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -9037,7 +9030,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6464 + //line php5/php5.y:6466 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -9053,7 +9046,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6478 + //line php5/php5.y:6480 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -9069,7 +9062,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6492 + //line php5/php5.y:6494 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -9081,7 +9074,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6505 + //line php5/php5.y:6507 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -9095,7 +9088,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6517 + //line php5/php5.y:6519 { yyVAL.node = yyDollar[2].node @@ -9110,7 +9103,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6533 + //line php5/php5.y:6535 { n := expr.NewVariable(nil) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} @@ -9126,7 +9119,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6547 + //line php5/php5.y:6549 { n := expr.NewVariable(nil) @@ -9146,10 +9139,10 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6568 + //line php5/php5.y:6570 { if len(yyDollar[1].list) == 0 { - yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} + yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil, false)} } yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9161,7 +9154,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6581 + //line php5/php5.y:6583 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -9173,9 +9166,9 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6595 + //line php5/php5.y:6597 { - yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) + yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -9187,10 +9180,10 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6607 + //line php5/php5.y:6609 { listNode := expr.NewList(yyDollar[3].list) - yyVAL.node = expr.NewArrayItem(nil, listNode) + yyVAL.node = expr.NewArrayItem(nil, listNode, false) // save position listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -9205,15 +9198,15 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6623 + //line php5/php5.y:6625 { - yyVAL.node = expr.NewArrayItem(nil, nil) + yyVAL.node = expr.NewArrayItem(nil, nil, false) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 481: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6633 + //line php5/php5.y:6635 { yyVAL.list = []node.Node{} @@ -9221,12 +9214,12 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6639 + //line php5/php5.y:6641 { yyVAL.list = yyDollar[1].list if yyDollar[2].token != nil { - yyVAL.list = append(yyDollar[1].list, expr.NewArrayItem(nil, nil)) + yyVAL.list = append(yyDollar[1].list, expr.NewArrayItem(nil, nil, false)) } // save comments @@ -9238,9 +9231,9 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6657 + //line php5/php5.y:6659 { - arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node) + arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position @@ -9255,9 +9248,9 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6672 + //line php5/php5.y:6674 { - arrayItem := expr.NewArrayItem(nil, yyDollar[3].node) + arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position @@ -9271,9 +9264,9 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6686 + //line php5/php5.y:6688 { - arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) + arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) yyVAL.list = []node.Node{arrayItem} // save position @@ -9287,9 +9280,9 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6700 + //line php5/php5.y:6702 { - arrayItem := expr.NewArrayItem(nil, yyDollar[1].node) + arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) yyVAL.list = []node.Node{arrayItem} // save position @@ -9302,10 +9295,10 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6713 + //line php5/php5.y:6715 { reference := expr.NewReference(yyDollar[6].node) - arrayItem := expr.NewArrayItem(yyDollar[3].node, reference) + arrayItem := expr.NewArrayItem(yyDollar[3].node, reference, false) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position @@ -9322,10 +9315,10 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6731 + //line php5/php5.y:6733 { reference := expr.NewReference(yyDollar[4].node) - arrayItem := expr.NewArrayItem(nil, reference) + arrayItem := expr.NewArrayItem(nil, reference, false) yyVAL.list = append(yyDollar[1].list, arrayItem) // save position @@ -9340,10 +9333,10 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6747 + //line php5/php5.y:6749 { reference := expr.NewReference(yyDollar[4].node) - arrayItem := expr.NewArrayItem(yyDollar[1].node, reference) + arrayItem := expr.NewArrayItem(yyDollar[1].node, reference, false) yyVAL.list = []node.Node{arrayItem} // save position @@ -9359,10 +9352,10 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6764 + //line php5/php5.y:6766 { reference := expr.NewReference(yyDollar[2].node) - arrayItem := expr.NewArrayItem(nil, reference) + arrayItem := expr.NewArrayItem(nil, reference, false) yyVAL.list = []node.Node{arrayItem} // save position @@ -9376,7 +9369,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6782 + //line php5/php5.y:6784 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9384,7 +9377,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6788 + //line php5/php5.y:6790 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9399,7 +9392,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6801 + //line php5/php5.y:6803 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9407,7 +9400,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6807 + //line php5/php5.y:6809 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -9422,7 +9415,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6823 + //line php5/php5.y:6825 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -9439,7 +9432,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6838 + //line php5/php5.y:6840 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9459,7 +9452,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6856 + //line php5/php5.y:6858 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9481,7 +9474,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6876 + //line php5/php5.y:6878 { variable := expr.NewVariable(yyDollar[2].node) @@ -9498,7 +9491,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6891 + //line php5/php5.y:6893 { name := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(name) @@ -9517,7 +9510,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6908 + //line php5/php5.y:6910 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -9538,7 +9531,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6927 + //line php5/php5.y:6929 { yyVAL.node = yyDollar[2].node @@ -9550,7 +9543,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6940 + //line php5/php5.y:6942 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -9564,7 +9557,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6952 + //line php5/php5.y:6954 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -9583,7 +9576,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6969 + //line php5/php5.y:6971 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -9600,7 +9593,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6987 + //line php5/php5.y:6989 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -9616,7 +9609,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:7001 + //line php5/php5.y:7003 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9632,7 +9625,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:7015 + //line php5/php5.y:7017 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9648,7 +9641,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:7029 + //line php5/php5.y:7031 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -9662,7 +9655,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:7041 + //line php5/php5.y:7043 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -9676,7 +9669,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:7053 + //line php5/php5.y:7055 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -9692,7 +9685,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:7067 + //line php5/php5.y:7069 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -9706,7 +9699,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:7079 + //line php5/php5.y:7081 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -9720,7 +9713,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:7094 + //line php5/php5.y:7096 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9728,7 +9721,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7100 + //line php5/php5.y:7102 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9739,7 +9732,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:7112 + //line php5/php5.y:7114 { yyVAL.node = yyDollar[1].node @@ -9747,7 +9740,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:7118 + //line php5/php5.y:7120 { yyVAL.node = yyDollar[1].node @@ -9755,7 +9748,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7127 + //line php5/php5.y:7129 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9773,7 +9766,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7143 + //line php5/php5.y:7145 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9791,7 +9784,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7162 + //line php5/php5.y:7164 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9809,7 +9802,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7181 + //line php5/php5.y:7183 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) diff --git a/php5/php5.y b/php5/php5.y index 1239310..9102dd8 100644 --- a/php5/php5.y +++ b/php5/php5.y @@ -66,6 +66,7 @@ import ( %token T_CONTINUE %token T_GOTO %token T_FUNCTION +%token T_FN %token T_CONST %token T_RETURN %token T_TRY @@ -157,6 +158,7 @@ import ( %token T_XOR_EQUAL %token T_SL_EQUAL %token T_SR_EQUAL +%token T_COALESCE_EQUAL %token T_BOOLEAN_OR %token T_BOOLEAN_AND %token T_POW @@ -2699,7 +2701,7 @@ class_statement_list: class_statement: variable_modifiers class_variable_declaration ';' { - $$ = stmt.NewPropertyList($1, $2) + $$ = stmt.NewPropertyList($1, nil, $2) // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) @@ -5915,7 +5917,7 @@ possible_comma: non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar_value T_DOUBLE_ARROW static_scalar_value { - arrayItem := expr.NewArrayItem($3, $5) + arrayItem := expr.NewArrayItem($3, $5, false) $$ = append($1, arrayItem) // save position @@ -5930,7 +5932,7 @@ non_empty_static_array_pair_list: } | non_empty_static_array_pair_list ',' static_scalar_value { - arrayItem := expr.NewArrayItem(nil, $3) + arrayItem := expr.NewArrayItem(nil, $3, false) $$ = append($1, arrayItem) // save position @@ -5944,7 +5946,7 @@ non_empty_static_array_pair_list: } | static_scalar_value T_DOUBLE_ARROW static_scalar_value { - arrayItem := expr.NewArrayItem($1, $3) + arrayItem := expr.NewArrayItem($1, $3, false) $$ = []node.Node{arrayItem} // save position @@ -5958,7 +5960,7 @@ non_empty_static_array_pair_list: } | static_scalar_value { - arrayItem := expr.NewArrayItem(nil, $1) + arrayItem := expr.NewArrayItem(nil, $1, false) $$ = []node.Node{arrayItem} // save position @@ -6567,7 +6569,7 @@ assignment_list: assignment_list ',' assignment_list_element { if len($1) == 0 { - $1 = []node.Node{expr.NewArrayItem(nil, nil)} + $1 = []node.Node{expr.NewArrayItem(nil, nil, false)} } $$ = append($1, $3) @@ -6593,7 +6595,7 @@ assignment_list: assignment_list_element: variable { - $$ = expr.NewArrayItem(nil, $1) + $$ = expr.NewArrayItem(nil, $1, false) // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) @@ -6606,7 +6608,7 @@ assignment_list_element: | T_LIST '(' assignment_list ')' { listNode := expr.NewList($3) - $$ = expr.NewArrayItem(nil, listNode) + $$ = expr.NewArrayItem(nil, listNode, false) // save position listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) @@ -6621,7 +6623,7 @@ assignment_list_element: } | /* empty */ { - $$ = expr.NewArrayItem(nil, nil) + $$ = expr.NewArrayItem(nil, nil, false) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6640,7 +6642,7 @@ array_pair_list: $$ = $1 if $2 != nil { - $$ = append($1, expr.NewArrayItem(nil, nil)) + $$ = append($1, expr.NewArrayItem(nil, nil, false)) } // save comments @@ -6655,7 +6657,7 @@ array_pair_list: non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { - arrayItem := expr.NewArrayItem($3, $5) + arrayItem := expr.NewArrayItem($3, $5, false) $$ = append($1, arrayItem) // save position @@ -6670,7 +6672,7 @@ non_empty_array_pair_list: } | non_empty_array_pair_list ',' expr { - arrayItem := expr.NewArrayItem(nil, $3) + arrayItem := expr.NewArrayItem(nil, $3, false) $$ = append($1, arrayItem) // save position @@ -6684,7 +6686,7 @@ non_empty_array_pair_list: } | expr T_DOUBLE_ARROW expr { - arrayItem := expr.NewArrayItem($1, $3) + arrayItem := expr.NewArrayItem($1, $3, false) $$ = []node.Node{arrayItem} // save position @@ -6698,7 +6700,7 @@ non_empty_array_pair_list: } | expr { - arrayItem := expr.NewArrayItem(nil, $1) + arrayItem := expr.NewArrayItem(nil, $1, false) $$ = []node.Node{arrayItem} // save position @@ -6712,7 +6714,7 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { reference := expr.NewReference($6) - arrayItem := expr.NewArrayItem($3, reference) + arrayItem := expr.NewArrayItem($3, reference, false) $$ = append($1, arrayItem) // save position @@ -6730,7 +6732,7 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' '&' w_variable { reference := expr.NewReference($4) - arrayItem := expr.NewArrayItem(nil, reference) + arrayItem := expr.NewArrayItem(nil, reference, false) $$ = append($1, arrayItem) // save position @@ -6746,7 +6748,7 @@ non_empty_array_pair_list: | expr T_DOUBLE_ARROW '&' w_variable { reference := expr.NewReference($4) - arrayItem := expr.NewArrayItem($1, reference) + arrayItem := expr.NewArrayItem($1, reference, false) $$ = []node.Node{arrayItem} // save position @@ -6763,7 +6765,7 @@ non_empty_array_pair_list: | '&' w_variable { reference := expr.NewReference($2) - arrayItem := expr.NewArrayItem(nil, reference) + arrayItem := expr.NewArrayItem(nil, reference, false) $$ = []node.Node{arrayItem} // save position diff --git a/php5/php5_bench_test.go b/php5/php5_bench_test.go index cf823b5..1cdd5aa 100644 --- a/php5/php5_bench_test.go +++ b/php5/php5_bench_test.go @@ -413,7 +413,7 @@ CAD; ` for n := 0; n < b.N; n++ { - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() } } diff --git a/php5/php5_test.go b/php5/php5_test.go index 2d5b940..3cbb727 100644 --- a/php5/php5_test.go +++ b/php5/php5_test.go @@ -18401,7 +18401,7 @@ func TestPhp5(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18516,7 +18516,7 @@ func TestPhp5Strings(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18706,7 +18706,7 @@ CAD; }, } - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18726,7 +18726,7 @@ func TestPhp5ControlCharsErrors(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual := php5parser.GetErrors() assert.DeepEqual(t, expected, actual) diff --git a/php7/parser.go b/php7/parser.go index b2cf16b..2a931d0 100644 --- a/php7/parser.go +++ b/php7/parser.go @@ -6,8 +6,8 @@ import ( "github.com/z7zmey/php-parser/errors" "github.com/z7zmey/php-parser/freefloating" "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/parser" "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/positionbuilder" "github.com/z7zmey/php-parser/scanner" ) @@ -19,13 +19,14 @@ func (lval *yySymType) Token(t *scanner.Token) { type Parser struct { Lexer scanner.Scanner currentToken *scanner.Token - positionBuilder *parser.PositionBuilder + positionBuilder *positionbuilder.PositionBuilder rootNode node.Node } // NewParser creates and returns new Parser -func NewParser(src []byte) *Parser { +func NewParser(src []byte, v string) *Parser { lexer := scanner.NewLexer(src) + lexer.PHPVersion = v return &Parser{ lexer, @@ -61,7 +62,7 @@ func (l *Parser) Parse() int { // init l.Lexer.SetErrors(nil) l.rootNode = nil - l.positionBuilder = &parser.PositionBuilder{} + l.positionBuilder = &positionbuilder.PositionBuilder{} // parse diff --git a/php7/php7.go b/php7/php7.go index c344309..05905dd 100644 --- a/php7/php7.go +++ b/php7/php7.go @@ -68,108 +68,110 @@ const T_BREAK = 57376 const T_CONTINUE = 57377 const T_GOTO = 57378 const T_FUNCTION = 57379 -const T_CONST = 57380 -const T_RETURN = 57381 -const T_TRY = 57382 -const T_CATCH = 57383 -const T_FINALLY = 57384 -const T_THROW = 57385 -const T_USE = 57386 -const T_INSTEADOF = 57387 -const T_GLOBAL = 57388 -const T_VAR = 57389 -const T_UNSET = 57390 -const T_ISSET = 57391 -const T_EMPTY = 57392 -const T_HALT_COMPILER = 57393 -const T_CLASS = 57394 -const T_TRAIT = 57395 -const T_INTERFACE = 57396 -const T_EXTENDS = 57397 -const T_IMPLEMENTS = 57398 -const T_OBJECT_OPERATOR = 57399 -const T_DOUBLE_ARROW = 57400 -const T_LIST = 57401 -const T_ARRAY = 57402 -const T_CALLABLE = 57403 -const T_CLASS_C = 57404 -const T_TRAIT_C = 57405 -const T_METHOD_C = 57406 -const T_FUNC_C = 57407 -const T_LINE = 57408 -const T_FILE = 57409 -const T_COMMENT = 57410 -const T_DOC_COMMENT = 57411 -const T_OPEN_TAG = 57412 -const T_OPEN_TAG_WITH_ECHO = 57413 -const T_CLOSE_TAG = 57414 -const T_WHITESPACE = 57415 -const T_START_HEREDOC = 57416 -const T_END_HEREDOC = 57417 -const T_DOLLAR_OPEN_CURLY_BRACES = 57418 -const T_CURLY_OPEN = 57419 -const T_PAAMAYIM_NEKUDOTAYIM = 57420 -const T_NAMESPACE = 57421 -const T_NS_C = 57422 -const T_DIR = 57423 -const T_NS_SEPARATOR = 57424 -const T_ELLIPSIS = 57425 -const T_EVAL = 57426 -const T_REQUIRE = 57427 -const T_REQUIRE_ONCE = 57428 -const T_LOGICAL_OR = 57429 -const T_LOGICAL_XOR = 57430 -const T_LOGICAL_AND = 57431 -const T_INSTANCEOF = 57432 -const T_NEW = 57433 -const T_CLONE = 57434 -const T_ELSEIF = 57435 -const T_ELSE = 57436 -const T_ENDIF = 57437 -const T_PRINT = 57438 -const T_YIELD = 57439 -const T_STATIC = 57440 -const T_ABSTRACT = 57441 -const T_FINAL = 57442 -const T_PRIVATE = 57443 -const T_PROTECTED = 57444 -const T_PUBLIC = 57445 -const T_INC = 57446 -const T_DEC = 57447 -const T_YIELD_FROM = 57448 -const T_INT_CAST = 57449 -const T_DOUBLE_CAST = 57450 -const T_STRING_CAST = 57451 -const T_ARRAY_CAST = 57452 -const T_OBJECT_CAST = 57453 -const T_BOOL_CAST = 57454 -const T_UNSET_CAST = 57455 -const T_COALESCE = 57456 -const T_SPACESHIP = 57457 -const T_NOELSE = 57458 -const T_PLUS_EQUAL = 57459 -const T_MINUS_EQUAL = 57460 -const T_MUL_EQUAL = 57461 -const T_POW_EQUAL = 57462 -const T_DIV_EQUAL = 57463 -const T_CONCAT_EQUAL = 57464 -const T_MOD_EQUAL = 57465 -const T_AND_EQUAL = 57466 -const T_OR_EQUAL = 57467 -const T_XOR_EQUAL = 57468 -const T_SL_EQUAL = 57469 -const T_SR_EQUAL = 57470 -const T_BOOLEAN_OR = 57471 -const T_BOOLEAN_AND = 57472 -const T_POW = 57473 -const T_SL = 57474 -const T_SR = 57475 -const T_IS_IDENTICAL = 57476 -const T_IS_NOT_IDENTICAL = 57477 -const T_IS_EQUAL = 57478 -const T_IS_NOT_EQUAL = 57479 -const T_IS_SMALLER_OR_EQUAL = 57480 -const T_IS_GREATER_OR_EQUAL = 57481 +const T_FN = 57380 +const T_CONST = 57381 +const T_RETURN = 57382 +const T_TRY = 57383 +const T_CATCH = 57384 +const T_FINALLY = 57385 +const T_THROW = 57386 +const T_USE = 57387 +const T_INSTEADOF = 57388 +const T_GLOBAL = 57389 +const T_VAR = 57390 +const T_UNSET = 57391 +const T_ISSET = 57392 +const T_EMPTY = 57393 +const T_HALT_COMPILER = 57394 +const T_CLASS = 57395 +const T_TRAIT = 57396 +const T_INTERFACE = 57397 +const T_EXTENDS = 57398 +const T_IMPLEMENTS = 57399 +const T_OBJECT_OPERATOR = 57400 +const T_DOUBLE_ARROW = 57401 +const T_LIST = 57402 +const T_ARRAY = 57403 +const T_CALLABLE = 57404 +const T_CLASS_C = 57405 +const T_TRAIT_C = 57406 +const T_METHOD_C = 57407 +const T_FUNC_C = 57408 +const T_LINE = 57409 +const T_FILE = 57410 +const T_COMMENT = 57411 +const T_DOC_COMMENT = 57412 +const T_OPEN_TAG = 57413 +const T_OPEN_TAG_WITH_ECHO = 57414 +const T_CLOSE_TAG = 57415 +const T_WHITESPACE = 57416 +const T_START_HEREDOC = 57417 +const T_END_HEREDOC = 57418 +const T_DOLLAR_OPEN_CURLY_BRACES = 57419 +const T_CURLY_OPEN = 57420 +const T_PAAMAYIM_NEKUDOTAYIM = 57421 +const T_NAMESPACE = 57422 +const T_NS_C = 57423 +const T_DIR = 57424 +const T_NS_SEPARATOR = 57425 +const T_ELLIPSIS = 57426 +const T_EVAL = 57427 +const T_REQUIRE = 57428 +const T_REQUIRE_ONCE = 57429 +const T_LOGICAL_OR = 57430 +const T_LOGICAL_XOR = 57431 +const T_LOGICAL_AND = 57432 +const T_INSTANCEOF = 57433 +const T_NEW = 57434 +const T_CLONE = 57435 +const T_ELSEIF = 57436 +const T_ELSE = 57437 +const T_ENDIF = 57438 +const T_PRINT = 57439 +const T_YIELD = 57440 +const T_STATIC = 57441 +const T_ABSTRACT = 57442 +const T_FINAL = 57443 +const T_PRIVATE = 57444 +const T_PROTECTED = 57445 +const T_PUBLIC = 57446 +const T_INC = 57447 +const T_DEC = 57448 +const T_YIELD_FROM = 57449 +const T_INT_CAST = 57450 +const T_DOUBLE_CAST = 57451 +const T_STRING_CAST = 57452 +const T_ARRAY_CAST = 57453 +const T_OBJECT_CAST = 57454 +const T_BOOL_CAST = 57455 +const T_UNSET_CAST = 57456 +const T_COALESCE = 57457 +const T_SPACESHIP = 57458 +const T_NOELSE = 57459 +const T_PLUS_EQUAL = 57460 +const T_MINUS_EQUAL = 57461 +const T_MUL_EQUAL = 57462 +const T_POW_EQUAL = 57463 +const T_DIV_EQUAL = 57464 +const T_CONCAT_EQUAL = 57465 +const T_MOD_EQUAL = 57466 +const T_AND_EQUAL = 57467 +const T_OR_EQUAL = 57468 +const T_XOR_EQUAL = 57469 +const T_SL_EQUAL = 57470 +const T_SR_EQUAL = 57471 +const T_COALESCE_EQUAL = 57472 +const T_BOOLEAN_OR = 57473 +const T_BOOLEAN_AND = 57474 +const T_POW = 57475 +const T_SL = 57476 +const T_SR = 57477 +const T_IS_IDENTICAL = 57478 +const T_IS_NOT_IDENTICAL = 57479 +const T_IS_EQUAL = 57480 +const T_IS_NOT_EQUAL = 57481 +const T_IS_SMALLER_OR_EQUAL = 57482 +const T_IS_GREATER_OR_EQUAL = 57483 var yyToknames = [...]string{ "$end", @@ -209,6 +211,7 @@ var yyToknames = [...]string{ "T_CONTINUE", "T_GOTO", "T_FUNCTION", + "T_FN", "T_CONST", "T_RETURN", "T_TRY", @@ -300,6 +303,7 @@ var yyToknames = [...]string{ "T_XOR_EQUAL", "T_SL_EQUAL", "T_SR_EQUAL", + "T_COALESCE_EQUAL", "T_BOOLEAN_OR", "T_BOOLEAN_AND", "T_POW", @@ -346,7 +350,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line php7/php7.y:5614 +//line php7/php7.y:5666 //line yacctab:1 var yyExca = [...]int{ @@ -357,1022 +361,1019 @@ var yyExca = [...]int{ 1, 1, -2, 0, -1, 44, - 57, 422, - 78, 422, - 142, 422, - 148, 422, - -2, 417, + 58, 426, + 79, 426, + 144, 426, + 150, 426, + -2, 421, -1, 48, - 146, 425, - -2, 434, - -1, 84, - 57, 424, - 78, 424, - 142, 424, - 146, 427, - 148, 424, - -2, 412, - -1, 107, - 78, 385, - -2, 414, - -1, 229, - 57, 422, - 78, 422, - 142, 422, - 148, 422, - -2, 313, - -1, 232, - 146, 427, - -2, 424, - -1, 235, - 57, 422, - 78, 422, - 142, 422, - 148, 422, - -2, 315, - -1, 354, - 115, 0, - 134, 0, - 135, 0, - 136, 0, - 137, 0, - -2, 337, - -1, 355, - 115, 0, - 134, 0, - 135, 0, - 136, 0, - 137, 0, - -2, 338, - -1, 356, - 115, 0, - 134, 0, - 135, 0, - 136, 0, - 137, 0, - -2, 339, - -1, 357, - 115, 0, - 134, 0, - 135, 0, - 136, 0, - 137, 0, - -2, 340, - -1, 358, - 138, 0, - 139, 0, - 165, 0, - 166, 0, - -2, 341, - -1, 359, - 138, 0, - 139, 0, - 165, 0, - 166, 0, - -2, 342, - -1, 360, - 138, 0, - 139, 0, - 165, 0, - 166, 0, - -2, 343, - -1, 361, - 138, 0, - 139, 0, - 165, 0, - 166, 0, - -2, 344, - -1, 362, - 115, 0, - 134, 0, - 135, 0, - 136, 0, - 137, 0, - -2, 345, - -1, 369, - 147, 163, - 158, 163, - -2, 422, - -1, 413, - 147, 462, - 149, 462, - 158, 462, - -2, 422, - -1, 417, - 57, 423, - 78, 423, - 142, 423, - 146, 426, - 148, 423, - -2, 347, - -1, 431, - 146, 448, - -2, 415, - -1, 432, - 146, 450, - -2, 440, - -1, 511, - 146, 448, + 148, 429, + -2, 438, + -1, 85, + 58, 428, + 79, 428, + 144, 428, + 148, 431, + 150, 428, -2, 416, - -1, 512, - 146, 450, - -2, 441, - -1, 571, - 147, 213, - -2, 218, - -1, 596, - 146, 426, - -2, 423, - -1, 648, - 147, 213, - -2, 218, - -1, 653, - 147, 183, - -2, 422, - -1, 661, - 147, 213, - -2, 218, - -1, 686, - 147, 461, - 149, 461, - 158, 461, - -2, 422, - -1, 719, - 147, 184, - -2, 422, - -1, 739, - 12, 265, - -2, 268, - -1, 753, - 93, 208, - 94, 208, - 95, 208, - -2, 0, - -1, 778, - 147, 183, - -2, 422, - -1, 780, - 147, 186, - -2, 396, - -1, 800, - 93, 209, + -1, 109, + 79, 389, + -2, 418, + -1, 233, + 58, 426, + 79, 426, + 144, 426, + 150, 426, + -2, 315, + -1, 236, + 148, 431, + -2, 428, + -1, 239, + 58, 426, + 79, 426, + 144, 426, + 150, 426, + -2, 317, + -1, 358, + 116, 0, + 136, 0, + 137, 0, + 138, 0, + 139, 0, + -2, 339, + -1, 359, + 116, 0, + 136, 0, + 137, 0, + 138, 0, + 139, 0, + -2, 340, + -1, 360, + 116, 0, + 136, 0, + 137, 0, + 138, 0, + 139, 0, + -2, 341, + -1, 361, + 116, 0, + 136, 0, + 137, 0, + 138, 0, + 139, 0, + -2, 342, + -1, 362, + 140, 0, + 141, 0, + 167, 0, + 168, 0, + -2, 343, + -1, 363, + 140, 0, + 141, 0, + 167, 0, + 168, 0, + -2, 344, + -1, 364, + 140, 0, + 141, 0, + 167, 0, + 168, 0, + -2, 345, + -1, 365, + 140, 0, + 141, 0, + 167, 0, + 168, 0, + -2, 346, + -1, 366, + 116, 0, + 136, 0, + 137, 0, + 138, 0, + 139, 0, + -2, 347, + -1, 373, + 149, 164, + 160, 164, + -2, 426, + -1, 418, + 149, 466, + 151, 466, + 160, 466, + -2, 426, + -1, 423, + 58, 427, + 79, 427, + 144, 427, + 148, 430, + 150, 427, + -2, 349, + -1, 437, + 148, 452, + -2, 419, + -1, 438, + 148, 454, + -2, 444, + -1, 518, + 148, 452, + -2, 420, + -1, 519, + 148, 454, + -2, 445, + -1, 536, + 149, 214, + -2, 219, + -1, 578, + 149, 214, + -2, 219, + -1, 603, + 148, 430, + -2, 427, + -1, 669, + 149, 184, + -2, 426, + -1, 677, + 149, 214, + -2, 219, + -1, 693, + 149, 465, + 151, 465, + 160, 465, + -2, 426, + -1, 730, + 149, 185, + -2, 426, + -1, 746, + 37, 269, + 39, 269, + -2, 266, + -1, 760, 94, 209, 95, 209, + 96, 209, -2, 0, - -1, 849, + -1, 789, + 149, 184, + -2, 426, + -1, 791, + 149, 187, + -2, 400, + -1, 806, + 94, 210, + 95, 210, + 96, 210, + -2, 0, + -1, 856, + 31, 200, + 32, 200, + 33, 200, + 145, 200, + -2, 0, + -1, 888, + 29, 77, + -2, 81, + -1, 893, 31, 199, 32, 199, 33, 199, - 143, 199, + 145, 199, -2, 0, - -1, 882, - 29, 76, - -2, 80, - -1, 885, - 31, 198, - 32, 198, - 33, 198, - 143, 198, - -2, 0, - -1, 914, - 147, 213, - -2, 218, + -1, 921, + 149, 214, + -2, 219, } const yyPrivate = 57344 -const yyLast = 7805 +const yyLast = 7766 var yyAct = [...]int{ - 28, 130, 825, 838, 662, 861, 376, 578, 741, 436, - 874, 107, 837, 793, 774, 666, 811, 675, 785, 126, - 652, 633, 138, 138, 138, 664, 221, 151, 711, 565, - 700, 313, 667, 322, 5, 186, 532, 632, 368, 573, - 405, 514, 522, 80, 223, 317, 150, 378, 9, 316, - 132, 189, 8, 225, 228, 128, 143, 236, 237, 238, - 239, 240, 147, 2, 241, 242, 243, 244, 245, 246, - 247, 127, 250, 125, 513, 258, 259, 260, 315, 314, - 137, 7, 6, 430, 264, 870, 864, 684, 835, 273, - 274, 854, 276, 277, 842, 590, 841, 269, 230, 230, - 82, 334, 309, 140, 141, 406, 892, 105, 868, 832, - 677, 541, 335, 568, 331, 329, 307, 893, 677, 254, - 759, 111, 869, 833, 308, 302, 336, 704, 332, 330, - 308, 301, 319, 115, 121, 728, 324, 325, 84, 626, - 621, 44, 306, 105, 566, 302, 556, 411, 105, 285, - 287, 190, 862, 730, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 295, 364, 366, 219, 370, 321, 266, 372, 780, 693, - 689, 269, 610, 232, 232, 606, 229, 235, 333, 79, - 607, 380, 388, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 597, 585, 402, 138, 404, - 424, 225, 179, 410, 144, 600, 230, 603, 601, 384, - 261, 926, 415, 888, 290, 225, 292, 407, 855, 820, - 179, 299, 826, 819, 305, 809, 801, 409, 518, 784, - 138, 773, 106, 727, 717, 698, 371, 425, 696, 688, - 650, 416, 138, 165, 363, 638, 431, 511, 218, 519, - 230, 628, 523, 524, 217, 598, 525, 589, 283, 914, - 266, 165, 168, 169, 529, 270, 291, 533, 106, 225, - 117, 863, 105, 106, 164, 166, 167, 828, 403, 813, - 812, 230, 163, 162, 782, 720, 284, 687, 661, 289, - 551, 423, 164, 166, 167, 535, 648, 161, 286, 646, - 306, 232, 647, 751, 369, 571, 554, 5, 552, 414, - 418, 385, 268, 517, 383, 561, 288, 151, 275, 516, - 560, 9, 429, 520, 179, 8, 272, 510, 271, 249, - 220, 216, 184, 183, 117, 182, 105, 136, 538, 134, - 135, 387, 112, 131, 550, 232, 564, 602, 413, 294, - 113, 293, 420, 421, 7, 6, 544, 188, 233, 270, - 920, 903, 570, 562, 580, 165, 581, 558, 577, 582, - 583, 575, 768, 769, 579, 559, 232, 902, 420, 427, - 421, 421, 420, 930, 887, 929, 163, 162, 588, 850, - 821, 179, 225, 592, 815, 225, 164, 166, 167, 408, - 808, 161, 543, 134, 546, 572, 112, 768, 769, 609, - 765, 752, 716, 714, 612, 712, 710, 106, 707, 555, - 540, 595, 233, 537, 386, 374, 328, 587, 155, 157, - 156, 179, 165, 168, 169, 327, 591, 326, 296, 175, - 177, 117, 432, 512, 536, 844, 807, 804, 802, 761, - 536, 536, 611, 163, 162, 181, 178, 608, 909, 886, - 859, 117, 536, 164, 166, 167, 174, 176, 161, 857, - 153, 154, 165, 168, 169, 170, 171, 172, 173, 175, - 177, 106, 179, 814, 803, 813, 812, 790, 783, 733, - 255, 180, 159, 163, 162, 422, 676, 138, 616, 576, - 158, 185, 160, 164, 166, 167, 174, 176, 161, 419, - 144, 669, 670, 114, 165, 627, 253, 304, 767, 198, - 200, 199, 789, 165, 114, 120, 304, 191, 196, 197, - 134, 620, 613, 112, 117, 642, 324, 644, 637, 617, - 304, 625, 117, 117, 649, 306, 304, 634, 619, 289, - 5, 304, 906, 718, 256, 257, 574, 515, 263, 117, - 673, 262, 674, 671, 9, 640, 579, 379, 8, 643, - 289, 685, 904, 116, 77, 78, 702, 615, 382, 631, - 658, 786, 636, 630, 146, 651, 123, 124, 691, 905, - 230, 230, 672, 549, 547, 320, 681, 7, 6, 542, - 690, 668, 523, 134, 303, 894, 112, 533, 117, 46, - 105, 255, 724, 725, 545, 300, 110, 230, 528, 794, - 280, 281, 829, 708, 745, 746, 747, 744, 743, 742, - 701, 122, 148, 715, 117, 705, 634, 225, 148, 695, - 671, 722, 703, 699, 697, 298, 726, 546, 192, 546, - 796, 795, 117, 671, 706, 604, 713, 146, 109, 732, - 671, 123, 124, 721, 753, 754, 635, 117, 225, 749, - 816, 768, 769, 129, 748, 256, 257, 134, 230, 119, - 112, 731, 757, 548, 536, 232, 232, 255, 369, 653, - 750, 324, 422, 377, 755, 614, 233, 255, 408, 618, - 375, 225, 701, 195, 634, 194, 762, 771, 768, 769, - 758, 193, 232, 760, 187, 686, 763, 669, 670, 777, - 671, 770, 1, 772, 766, 38, 797, 779, 798, 775, - 579, 791, 546, 800, 787, 739, 134, 546, 546, 112, - 736, 737, 230, 663, 231, 531, 234, 222, 521, 810, - 527, 256, 257, 860, 738, 106, 367, 740, 818, 805, - 526, 256, 257, 873, 145, 824, 792, 142, 827, 323, - 806, 149, 817, 232, 823, 836, 719, 660, 822, 255, - 251, 834, 381, 639, 278, 255, 845, 928, 830, 645, - 422, 255, 840, 849, 224, 43, 282, 42, 16, 15, - 851, 843, 599, 267, 546, 49, 546, 848, 745, 746, - 747, 744, 743, 742, 853, 48, 867, 108, 671, 255, - 50, 846, 858, 871, 252, 83, 880, 866, 839, 884, - 885, 775, 81, 72, 879, 248, 62, 232, 265, 890, - 778, 891, 279, 256, 257, 895, 61, 889, 878, 256, - 257, 898, 877, 883, 896, 256, 257, 880, 899, 876, - 875, 546, 897, 735, 901, 879, 45, 665, 908, 723, - 657, 310, 118, 297, 3, 435, 788, 729, 0, 912, - 0, 0, 0, 256, 257, 913, 0, 0, 0, 0, - 919, 922, 915, 0, 918, 917, 579, 0, 0, 923, - 0, 0, 924, 0, 0, 0, 671, 0, 0, 927, - 0, 4, 931, 88, 89, 70, 47, 93, 94, 36, - 0, 105, 0, 27, 0, 0, 0, 110, 26, 18, - 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, - 0, 0, 0, 21, 22, 35, 37, 13, 23, 33, - 0, 0, 34, 12, 0, 24, 0, 29, 86, 87, - 10, 39, 40, 41, 0, 0, 0, 0, 51, 109, - 0, 102, 98, 99, 100, 95, 96, 738, 0, 0, - 740, 0, 0, 103, 0, 0, 0, 0, 11, 101, - 97, 112, 0, 90, 91, 92, 0, 0, 0, 0, - 85, 53, 0, 0, 0, 74, 75, 25, 77, 78, - 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, - 67, 68, 69, 0, 214, 215, 0, 0, 0, 0, - 0, 745, 746, 747, 744, 743, 742, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 104, - 73, 14, 629, 32, 0, 60, 0, 52, 0, 0, - 0, 57, 56, 58, 59, 71, 106, 4, 0, 88, - 89, 70, 47, 93, 94, 36, 865, 105, 0, 27, - 201, 0, 0, 110, 26, 18, 17, 0, 19, 0, + 28, 132, 765, 631, 843, 880, 866, 585, 442, 748, + 842, 109, 785, 820, 191, 839, 635, 682, 113, 634, + 668, 128, 140, 140, 140, 712, 650, 153, 380, 572, + 117, 123, 633, 649, 224, 188, 327, 580, 540, 529, + 636, 410, 372, 521, 318, 723, 226, 5, 322, 81, + 382, 9, 321, 228, 232, 8, 85, 240, 241, 242, + 243, 244, 152, 134, 245, 246, 247, 248, 249, 250, + 251, 320, 254, 149, 7, 262, 263, 264, 319, 145, + 2, 6, 130, 127, 139, 520, 436, 268, 129, 876, + 277, 278, 873, 280, 281, 850, 691, 597, 273, 258, + 83, 860, 338, 314, 234, 234, 899, 142, 143, 874, + 870, 236, 236, 847, 411, 846, 107, 900, 549, 575, + 684, 287, 339, 875, 871, 771, 716, 336, 334, 684, + 313, 312, 307, 295, 324, 297, 340, 306, 329, 330, + 304, 337, 335, 310, 706, 313, 311, 643, 628, 573, + 326, 307, 564, 290, 292, 181, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 416, 368, 370, 192, 374, 270, 708, 376, + 44, 791, 222, 273, 119, 107, 107, 167, 700, 300, + 607, 696, 610, 608, 392, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 165, 164, + 407, 140, 409, 181, 228, 384, 867, 107, 166, 168, + 169, 419, 617, 163, 234, 604, 421, 272, 613, 228, + 119, 236, 107, 614, 388, 233, 239, 592, 412, 415, + 861, 265, 932, 921, 140, 895, 430, 828, 414, 181, + 827, 431, 818, 108, 136, 167, 140, 114, 807, 367, + 795, 437, 518, 422, 80, 375, 530, 531, 221, 234, + 532, 835, 270, 237, 220, 525, 236, 738, 728, 537, + 710, 705, 541, 703, 228, 119, 166, 168, 169, 146, + 695, 167, 170, 171, 666, 408, 526, 655, 177, 179, + 136, 234, 645, 114, 605, 559, 596, 793, 236, 296, + 822, 821, 165, 164, 551, 731, 554, 311, 543, 237, + 694, 927, 166, 168, 169, 176, 178, 163, 424, 568, + 677, 153, 108, 108, 609, 5, 638, 639, 429, 9, + 435, 291, 663, 8, 517, 664, 426, 427, 527, 288, + 578, 274, 425, 910, 562, 136, 560, 868, 114, 536, + 571, 524, 7, 420, 108, 373, 389, 523, 294, 6, + 546, 387, 426, 289, 427, 427, 426, 293, 587, 108, + 588, 552, 279, 589, 590, 582, 558, 276, 586, 275, + 253, 223, 219, 569, 186, 185, 184, 138, 577, 137, + 133, 567, 115, 595, 584, 566, 766, 228, 599, 758, + 418, 228, 391, 157, 159, 158, 181, 936, 190, 935, + 909, 851, 579, 780, 781, 616, 894, 637, 857, 299, + 619, 298, 181, 780, 781, 829, 824, 817, 777, 759, + 183, 180, 433, 727, 594, 602, 274, 726, 724, 722, + 719, 563, 548, 598, 545, 390, 155, 156, 167, 170, + 171, 172, 173, 174, 175, 177, 179, 378, 333, 332, + 618, 822, 821, 331, 167, 170, 171, 182, 161, 165, + 164, 301, 816, 119, 813, 808, 160, 413, 162, 166, + 168, 169, 176, 178, 163, 165, 164, 773, 615, 544, + 915, 544, 544, 217, 218, 166, 168, 169, 864, 863, + 163, 544, 809, 798, 140, 623, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 794, + 740, 438, 519, 644, 683, 167, 823, 583, 640, 187, + 198, 199, 181, 257, 122, 77, 779, 193, 627, 769, + 116, 620, 119, 659, 329, 661, 116, 624, 309, 642, + 203, 665, 554, 294, 554, 311, 913, 651, 626, 309, + 309, 148, 678, 745, 522, 267, 747, 259, 654, 681, + 640, 5, 428, 586, 167, 9, 266, 119, 692, 8, + 660, 200, 202, 201, 78, 79, 657, 119, 622, 680, + 146, 309, 119, 638, 639, 698, 667, 679, 7, 849, + 674, 729, 294, 234, 234, 6, 581, 118, 259, 530, + 236, 236, 136, 648, 557, 114, 688, 752, 753, 754, + 751, 750, 749, 714, 541, 653, 647, 383, 309, 640, + 234, 386, 260, 261, 911, 555, 797, 236, 284, 285, + 720, 119, 735, 736, 702, 550, 554, 136, 704, 713, + 114, 554, 554, 228, 717, 651, 303, 733, 709, 715, + 553, 737, 711, 889, 802, 305, 801, 718, 125, 640, + 126, 760, 761, 260, 261, 228, 756, 148, 119, 119, + 107, 755, 308, 135, 106, 46, 112, 732, 739, 912, + 725, 752, 753, 754, 751, 750, 749, 535, 640, 259, + 234, 325, 697, 329, 428, 840, 125, 236, 126, 762, + 757, 764, 228, 554, 124, 554, 713, 901, 651, 767, + 772, 812, 770, 774, 194, 150, 259, 119, 775, 111, + 788, 428, 1, 803, 259, 640, 804, 586, 799, 778, + 806, 611, 652, 800, 373, 669, 790, 38, 136, 259, + 782, 114, 784, 786, 286, 121, 131, 259, 640, 234, + 556, 819, 282, 811, 260, 261, 236, 237, 150, 826, + 554, 693, 544, 814, 810, 381, 832, 621, 833, 834, + 413, 625, 815, 746, 379, 831, 825, 780, 781, 197, + 534, 260, 261, 135, 106, 196, 836, 844, 533, 260, + 261, 743, 856, 259, 783, 780, 781, 848, 256, 195, + 189, 744, 632, 855, 260, 261, 235, 539, 238, 225, + 859, 283, 260, 261, 528, 865, 371, 108, 879, 877, + 890, 891, 886, 147, 838, 144, 892, 893, 328, 885, + 151, 730, 841, 853, 676, 897, 898, 830, 255, 872, + 796, 385, 786, 896, 903, 656, 852, 905, 934, 662, + 845, 227, 43, 42, 886, 908, 904, 902, 260, 261, + 16, 885, 15, 606, 271, 49, 48, 110, 50, 84, + 82, 72, 252, 62, 269, 61, 906, 918, 884, 883, + 882, 881, 742, 45, 734, 673, 315, 928, 926, 922, + 789, 924, 925, 586, 120, 929, 302, 3, 441, 768, + 930, 707, 919, 640, 920, 933, 0, 4, 937, 89, + 90, 70, 47, 94, 95, 36, 0, 107, 0, 27, + 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, - 22, 35, 37, 13, 23, 33, 0, 0, 34, 12, - 0, 24, 0, 29, 86, 87, 10, 39, 40, 41, - 0, 0, 0, 0, 51, 109, 0, 102, 98, 99, - 100, 95, 96, 738, 0, 0, 740, 0, 0, 103, - 0, 0, 0, 0, 11, 101, 97, 112, 0, 90, - 91, 92, 0, 0, 0, 0, 85, 53, 0, 0, - 0, 74, 75, 25, 77, 78, 0, 0, 0, 54, - 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, - 0, 0, 0, 0, 0, 0, 0, 745, 746, 747, - 744, 743, 742, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 104, 73, 14, 539, 32, + 22, 35, 37, 106, 13, 23, 33, 0, 0, 34, + 12, 0, 24, 0, 29, 87, 88, 10, 39, 40, + 41, 0, 0, 0, 0, 51, 111, 0, 103, 99, + 100, 101, 96, 97, 745, 0, 0, 747, 0, 0, + 104, 0, 0, 0, 0, 11, 102, 98, 114, 0, + 91, 92, 93, 0, 0, 0, 0, 86, 53, 0, + 0, 0, 74, 75, 25, 78, 79, 0, 0, 0, + 54, 55, 76, 63, 64, 65, 66, 67, 68, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 752, 753, + 754, 751, 750, 749, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 105, 73, 14, + 646, 32, 0, 60, 0, 52, 0, 0, 0, 57, + 56, 58, 59, 71, 108, 4, 0, 89, 90, 70, + 47, 94, 95, 36, 869, 107, 0, 27, 0, 0, + 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, + 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, + 37, 106, 13, 23, 33, 0, 0, 34, 12, 0, + 24, 0, 29, 87, 88, 10, 39, 40, 41, 0, + 0, 0, 0, 51, 111, 0, 103, 99, 100, 101, + 96, 97, 745, 0, 0, 747, 0, 0, 104, 0, + 0, 0, 0, 11, 102, 98, 114, 0, 91, 92, + 93, 0, 0, 0, 0, 86, 53, 0, 0, 0, + 74, 75, 25, 78, 79, 0, 0, 0, 54, 55, + 76, 63, 64, 65, 66, 67, 68, 69, 0, 0, + 0, 0, 0, 0, 0, 0, 752, 753, 754, 751, + 750, 749, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 105, 73, 14, 547, 32, 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, - 59, 71, 106, 4, 0, 88, 89, 70, 47, 93, - 94, 36, 831, 105, 0, 27, 0, 0, 0, 110, + 59, 71, 108, 4, 0, 89, 90, 70, 47, 94, + 95, 36, 837, 107, 0, 27, 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, - 0, 20, 0, 0, 0, 21, 22, 35, 37, 13, - 23, 33, 0, 0, 34, 12, 0, 24, 0, 29, - 86, 87, 10, 39, 40, 41, 0, 0, 0, 0, - 51, 109, 0, 102, 98, 99, 100, 95, 96, 738, - 0, 0, 740, 0, 0, 103, 0, 0, 0, 0, - 11, 101, 97, 112, 0, 90, 91, 92, 0, 0, - 0, 0, 85, 53, 0, 0, 0, 74, 75, 25, - 77, 78, 0, 0, 0, 54, 55, 76, 63, 64, - 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 745, 746, 747, 744, 743, 742, 0, + 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, + 13, 23, 33, 0, 0, 34, 12, 0, 24, 0, + 29, 87, 88, 10, 39, 40, 41, 0, 0, 0, + 0, 51, 111, 0, 103, 99, 100, 101, 96, 97, + 745, 0, 0, 747, 0, 0, 104, 0, 0, 0, + 0, 11, 102, 98, 114, 0, 91, 92, 93, 0, + 0, 0, 0, 86, 53, 0, 0, 0, 74, 75, + 25, 78, 79, 0, 0, 0, 54, 55, 76, 63, + 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, + 0, 0, 0, 0, 752, 753, 754, 751, 750, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 104, 73, 14, 0, 32, 0, 60, 0, 52, - 0, 0, 0, 57, 56, 58, 59, 71, 106, 312, - 0, 88, 89, 70, 47, 93, 94, 36, 799, 105, - 0, 27, 0, 0, 0, 110, 26, 18, 17, 0, + 0, 0, 0, 105, 73, 14, 0, 32, 0, 60, + 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, + 108, 317, 0, 89, 90, 70, 47, 94, 95, 36, + 805, 107, 0, 27, 0, 0, 0, 112, 26, 18, + 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, + 0, 0, 0, 21, 22, 35, 37, 106, 0, 23, + 33, 0, 0, 34, 0, 0, 24, 0, 29, 87, + 88, 323, 39, 40, 41, 0, 0, 0, 0, 51, + 111, 0, 103, 99, 100, 101, 96, 97, 745, 0, + 0, 747, 0, 0, 104, 0, 0, 0, 0, 136, + 102, 98, 114, 0, 91, 92, 93, 0, 0, 0, + 0, 86, 53, 0, 0, 0, 74, 75, 25, 78, + 79, 0, 0, 0, 54, 55, 76, 63, 64, 65, + 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, + 0, 0, 752, 753, 754, 751, 750, 749, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 105, 73, 14, 938, 32, 0, 60, 0, 52, + 0, 0, 0, 57, 56, 58, 59, 71, 108, 317, + 0, 89, 90, 70, 47, 94, 95, 36, 741, 107, + 0, 27, 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, - 0, 21, 22, 35, 37, 0, 23, 33, 0, 0, - 34, 0, 0, 24, 0, 29, 86, 87, 318, 39, - 40, 41, 0, 0, 0, 0, 51, 109, 0, 102, - 98, 99, 100, 95, 96, 738, 0, 0, 740, 0, - 0, 103, 0, 0, 0, 0, 134, 101, 97, 112, - 0, 90, 91, 92, 0, 0, 0, 0, 85, 53, - 0, 0, 0, 74, 75, 25, 77, 78, 0, 0, - 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 745, - 746, 747, 744, 743, 742, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 104, 73, 14, - 932, 32, 0, 60, 0, 52, 0, 0, 0, 57, - 56, 58, 59, 71, 106, 312, 0, 88, 89, 70, - 47, 93, 94, 36, 734, 105, 0, 27, 0, 0, - 0, 110, 26, 18, 17, 0, 19, 0, 30, 0, - 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, - 37, 0, 23, 33, 0, 0, 34, 0, 0, 24, - 0, 29, 86, 87, 318, 39, 40, 41, 0, 0, - 0, 0, 51, 109, 0, 102, 98, 99, 100, 95, - 96, 0, 0, 0, 0, 0, 0, 103, 0, 0, - 0, 0, 134, 101, 97, 112, 0, 90, 91, 92, - 0, 0, 0, 0, 85, 53, 0, 0, 0, 74, - 75, 25, 77, 78, 0, 0, 0, 54, 55, 76, - 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, + 0, 21, 22, 35, 37, 106, 0, 23, 33, 0, + 0, 34, 0, 0, 24, 0, 29, 87, 88, 323, + 39, 40, 41, 0, 0, 0, 0, 51, 111, 0, + 103, 99, 100, 101, 96, 97, 0, 0, 0, 0, + 0, 0, 104, 0, 0, 0, 0, 136, 102, 98, + 114, 0, 91, 92, 93, 0, 0, 0, 0, 86, + 53, 0, 0, 0, 74, 75, 25, 78, 79, 0, + 0, 0, 54, 55, 76, 63, 64, 65, 66, 67, + 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 104, 73, 14, 925, 32, 0, 60, - 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, - 106, 312, 0, 88, 89, 70, 47, 93, 94, 36, - 0, 105, 0, 27, 0, 0, 0, 110, 26, 18, - 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, - 0, 0, 0, 21, 22, 35, 37, 0, 23, 33, - 0, 0, 34, 0, 0, 24, 0, 29, 86, 87, - 318, 39, 40, 41, 0, 0, 0, 0, 51, 109, - 0, 102, 98, 99, 100, 95, 96, 0, 0, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 134, 101, - 97, 112, 0, 90, 91, 92, 0, 0, 0, 0, - 85, 53, 0, 0, 0, 74, 75, 25, 77, 78, - 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 73, 14, 921, 32, 0, 60, 0, 52, 0, 0, - 0, 57, 56, 58, 59, 71, 106, 312, 0, 88, - 89, 70, 47, 93, 94, 36, 0, 105, 0, 27, - 0, 0, 0, 110, 26, 18, 17, 0, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, + 73, 14, 931, 32, 0, 60, 0, 52, 0, 0, + 0, 57, 56, 58, 59, 71, 108, 317, 0, 89, + 90, 70, 47, 94, 95, 36, 0, 107, 0, 27, + 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, - 22, 35, 37, 0, 23, 33, 0, 0, 34, 0, - 0, 24, 0, 29, 86, 87, 318, 39, 40, 41, - 0, 0, 0, 0, 51, 109, 0, 102, 98, 99, - 100, 95, 96, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 0, 0, 134, 101, 97, 112, 0, 90, - 91, 92, 0, 0, 0, 0, 85, 53, 0, 0, - 0, 74, 75, 25, 77, 78, 0, 0, 0, 54, - 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, + 22, 35, 37, 106, 0, 23, 33, 0, 0, 34, + 0, 0, 24, 0, 29, 87, 88, 323, 39, 40, + 41, 0, 0, 0, 0, 51, 111, 0, 103, 99, + 100, 101, 96, 97, 0, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 136, 102, 98, 114, 0, + 91, 92, 93, 0, 0, 0, 0, 86, 53, 0, + 0, 0, 74, 75, 25, 78, 79, 0, 0, 0, + 54, 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 104, 73, 14, 911, 32, - 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, - 59, 71, 106, 312, 0, 88, 89, 70, 47, 93, - 94, 36, 0, 105, 0, 27, 0, 0, 0, 110, - 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, - 0, 20, 0, 0, 0, 21, 22, 35, 37, 0, - 23, 33, 0, 0, 34, 0, 0, 24, 0, 29, - 86, 87, 318, 39, 40, 41, 0, 0, 0, 0, - 51, 109, 0, 102, 98, 99, 100, 95, 96, 0, - 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, - 134, 101, 97, 112, 0, 90, 91, 92, 0, 0, - 0, 0, 85, 53, 0, 0, 0, 74, 75, 25, - 77, 78, 0, 0, 0, 54, 55, 76, 63, 64, - 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 104, 73, 14, 910, 32, 0, 60, 0, 52, - 0, 0, 0, 57, 56, 58, 59, 71, 106, 312, - 0, 88, 89, 70, 47, 93, 94, 36, 0, 105, - 0, 27, 0, 0, 0, 110, 26, 18, 17, 0, - 19, 907, 30, 0, 31, 0, 0, 20, 0, 0, - 0, 21, 22, 35, 37, 0, 23, 33, 0, 0, - 34, 0, 0, 24, 0, 29, 86, 87, 318, 39, - 40, 41, 0, 0, 0, 0, 51, 109, 0, 102, - 98, 99, 100, 95, 96, 0, 0, 0, 0, 0, - 0, 103, 0, 0, 0, 0, 134, 101, 97, 112, - 0, 90, 91, 92, 0, 0, 0, 0, 85, 53, - 0, 0, 0, 74, 75, 25, 77, 78, 0, 0, - 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 104, 73, 14, - 0, 32, 0, 60, 0, 52, 0, 0, 0, 57, - 56, 58, 59, 71, 106, 312, 0, 88, 89, 70, - 47, 93, 94, 36, 0, 105, 0, 27, 0, 0, - 0, 110, 26, 18, 17, 0, 19, 0, 30, 0, + 0, 0, 0, 0, 0, 0, 0, 105, 73, 14, + 917, 32, 0, 60, 0, 52, 0, 0, 0, 57, + 56, 58, 59, 71, 108, 317, 0, 89, 90, 70, + 47, 94, 95, 36, 0, 107, 0, 27, 0, 0, + 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, - 37, 0, 23, 33, 0, 0, 34, 0, 0, 24, - 0, 29, 86, 87, 318, 39, 40, 41, 0, 0, - 0, 0, 51, 109, 0, 102, 98, 99, 100, 95, - 96, 0, 0, 0, 0, 0, 0, 103, 0, 0, - 0, 0, 134, 101, 97, 112, 0, 90, 91, 92, - 0, 0, 0, 0, 85, 53, 0, 0, 0, 74, - 75, 25, 77, 78, 0, 0, 0, 54, 55, 76, - 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, + 37, 106, 0, 23, 33, 0, 0, 34, 0, 0, + 24, 0, 29, 87, 88, 323, 39, 40, 41, 0, + 0, 0, 0, 51, 111, 0, 103, 99, 100, 101, + 96, 97, 0, 0, 0, 0, 0, 0, 104, 0, + 0, 0, 0, 136, 102, 98, 114, 0, 91, 92, + 93, 0, 0, 0, 0, 86, 53, 0, 0, 0, + 74, 75, 25, 78, 79, 0, 0, 0, 54, 55, + 76, 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 104, 73, 14, 856, 32, 0, 60, + 0, 0, 0, 0, 0, 105, 73, 14, 916, 32, + 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, + 59, 71, 108, 317, 0, 89, 90, 70, 47, 94, + 95, 36, 0, 107, 0, 27, 0, 0, 0, 112, + 26, 18, 17, 0, 19, 914, 30, 0, 31, 0, + 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, + 0, 23, 33, 0, 0, 34, 0, 0, 24, 0, + 29, 87, 88, 323, 39, 40, 41, 0, 0, 0, + 0, 51, 111, 0, 103, 99, 100, 101, 96, 97, + 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, + 0, 136, 102, 98, 114, 0, 91, 92, 93, 0, + 0, 0, 0, 86, 53, 0, 0, 0, 74, 75, + 25, 78, 79, 0, 0, 0, 54, 55, 76, 63, + 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 105, 73, 14, 0, 32, 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, - 106, 312, 0, 88, 89, 70, 47, 93, 94, 36, - 0, 105, 0, 27, 0, 0, 0, 110, 26, 18, - 17, 0, 19, 0, 30, 852, 31, 0, 0, 20, - 0, 0, 0, 21, 22, 35, 37, 0, 23, 33, - 0, 0, 34, 0, 0, 24, 0, 29, 86, 87, - 318, 39, 40, 41, 0, 0, 0, 0, 51, 109, - 0, 102, 98, 99, 100, 95, 96, 0, 0, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 134, 101, - 97, 112, 0, 90, 91, 92, 0, 0, 0, 0, - 85, 53, 0, 0, 0, 74, 75, 25, 77, 78, - 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, + 108, 317, 0, 89, 90, 70, 47, 94, 95, 36, + 0, 107, 0, 27, 0, 0, 0, 112, 26, 18, + 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, + 0, 0, 0, 21, 22, 35, 37, 106, 0, 23, + 33, 0, 0, 34, 0, 0, 24, 0, 29, 87, + 88, 323, 39, 40, 41, 0, 0, 0, 0, 51, + 111, 0, 103, 99, 100, 101, 96, 97, 0, 0, + 0, 0, 0, 0, 104, 0, 0, 0, 0, 136, + 102, 98, 114, 0, 91, 92, 93, 0, 0, 0, + 0, 86, 53, 0, 0, 0, 74, 75, 25, 78, + 79, 0, 0, 0, 54, 55, 76, 63, 64, 65, + 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 105, 73, 14, 862, 32, 0, 60, 0, 52, + 0, 0, 0, 57, 56, 58, 59, 71, 108, 317, + 0, 89, 90, 70, 47, 94, 95, 36, 0, 107, + 0, 27, 0, 0, 0, 112, 26, 18, 17, 0, + 19, 0, 30, 858, 31, 0, 0, 20, 0, 0, + 0, 21, 22, 35, 37, 106, 0, 23, 33, 0, + 0, 34, 0, 0, 24, 0, 29, 87, 88, 323, + 39, 40, 41, 0, 0, 0, 0, 51, 111, 0, + 103, 99, 100, 101, 96, 97, 0, 0, 0, 0, + 0, 0, 104, 0, 0, 0, 0, 136, 102, 98, + 114, 0, 91, 92, 93, 0, 0, 0, 0, 86, + 53, 0, 0, 0, 74, 75, 25, 78, 79, 0, + 0, 0, 54, 55, 76, 63, 64, 65, 66, 67, + 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 73, 14, 0, 32, 0, 60, 0, 52, 0, 0, - 0, 57, 56, 58, 59, 71, 106, 312, 0, 88, - 89, 70, 47, 93, 94, 36, 0, 105, 0, 27, - 0, 0, 0, 110, 26, 18, 17, 0, 19, 0, - 30, 0, 31, 781, 0, 20, 0, 0, 0, 21, - 22, 35, 37, 0, 23, 33, 0, 0, 34, 0, - 0, 24, 0, 29, 86, 87, 318, 39, 40, 41, - 0, 0, 0, 0, 51, 109, 0, 102, 98, 99, - 100, 95, 96, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 0, 0, 134, 101, 97, 112, 0, 90, - 91, 92, 0, 0, 0, 0, 85, 53, 0, 0, - 0, 74, 75, 25, 77, 78, 0, 0, 0, 54, - 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, + 0, 57, 56, 58, 59, 71, 108, 317, 0, 89, + 90, 70, 47, 94, 95, 36, 0, 107, 0, 27, + 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, + 30, 0, 31, 792, 0, 20, 0, 0, 0, 21, + 22, 35, 37, 106, 0, 23, 33, 0, 0, 34, + 0, 0, 24, 0, 29, 87, 88, 323, 39, 40, + 41, 0, 0, 0, 0, 51, 111, 0, 103, 99, + 100, 101, 96, 97, 0, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 136, 102, 98, 114, 0, + 91, 92, 93, 0, 0, 0, 0, 86, 53, 0, + 0, 0, 74, 75, 25, 78, 79, 0, 0, 0, + 54, 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 104, 73, 14, 0, 32, - 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, - 59, 71, 106, 312, 0, 88, 89, 70, 47, 93, - 94, 36, 0, 105, 0, 27, 0, 0, 0, 110, - 26, 18, 17, 764, 19, 0, 30, 0, 31, 0, - 0, 20, 0, 0, 0, 21, 22, 35, 37, 0, - 23, 33, 0, 0, 34, 0, 0, 24, 0, 29, - 86, 87, 318, 39, 40, 41, 0, 0, 0, 0, - 51, 109, 0, 102, 98, 99, 100, 95, 96, 0, - 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, - 134, 101, 97, 112, 0, 90, 91, 92, 0, 0, - 0, 0, 85, 53, 0, 0, 0, 74, 75, 25, - 77, 78, 0, 0, 0, 54, 55, 76, 63, 64, - 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 104, 73, 14, 0, 32, 0, 60, 0, 52, - 0, 0, 0, 57, 56, 58, 59, 71, 106, 312, - 0, 88, 89, 70, 47, 93, 94, 36, 0, 105, - 0, 27, 0, 0, 0, 110, 26, 18, 17, 0, - 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, - 0, 21, 22, 35, 37, 0, 23, 33, 0, 0, - 34, 0, 0, 24, 0, 29, 86, 87, 318, 39, - 40, 41, 0, 0, 0, 0, 51, 109, 0, 102, - 98, 99, 100, 95, 96, 0, 0, 0, 0, 0, - 0, 103, 0, 0, 0, 0, 134, 101, 97, 112, - 0, 90, 91, 92, 0, 0, 0, 0, 85, 53, - 0, 0, 680, 74, 75, 25, 77, 78, 0, 0, - 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 104, 73, 14, + 0, 0, 0, 0, 0, 0, 0, 105, 73, 14, 0, 32, 0, 60, 0, 52, 0, 0, 0, 57, - 56, 58, 59, 71, 106, 312, 0, 88, 89, 70, - 47, 93, 94, 36, 0, 105, 0, 27, 0, 0, - 0, 110, 26, 18, 17, 0, 19, 0, 30, 0, + 56, 58, 59, 71, 108, 317, 0, 89, 90, 70, + 47, 94, 95, 36, 0, 107, 0, 27, 0, 0, + 0, 112, 26, 18, 17, 776, 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, - 37, 0, 23, 33, 0, 0, 34, 0, 0, 24, - 0, 29, 86, 87, 318, 39, 40, 41, 0, 0, - 0, 0, 51, 109, 0, 102, 98, 99, 100, 95, - 96, 0, 0, 0, 0, 0, 0, 103, 0, 0, - 0, 0, 134, 101, 97, 112, 0, 90, 91, 92, - 0, 0, 0, 0, 85, 53, 0, 0, 0, 74, - 75, 25, 77, 78, 0, 0, 0, 54, 55, 76, - 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, + 37, 106, 0, 23, 33, 0, 0, 34, 0, 0, + 24, 0, 29, 87, 88, 323, 39, 40, 41, 0, + 0, 0, 0, 51, 111, 0, 103, 99, 100, 101, + 96, 97, 0, 0, 0, 0, 0, 0, 104, 0, + 0, 0, 0, 136, 102, 98, 114, 0, 91, 92, + 93, 0, 0, 0, 0, 86, 53, 0, 0, 0, + 74, 75, 25, 78, 79, 0, 0, 0, 54, 55, + 76, 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 104, 73, 14, 569, 32, 0, 60, - 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, - 106, 312, 0, 88, 89, 70, 47, 93, 94, 36, - 0, 105, 0, 27, 0, 0, 0, 110, 26, 18, - 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, - 0, 0, 0, 21, 22, 35, 37, 0, 23, 33, - 0, 0, 34, 0, 0, 24, 0, 29, 86, 87, - 318, 39, 40, 41, 0, 0, 0, 0, 51, 109, - 0, 102, 98, 99, 100, 95, 96, 0, 0, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 134, 101, - 97, 112, 0, 90, 91, 92, 0, 0, 0, 0, - 85, 53, 0, 0, 0, 74, 75, 25, 77, 78, - 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 73, 14, 311, 32, 0, 60, 0, 52, 0, 0, - 0, 57, 56, 58, 59, 71, 106, 312, 0, 88, - 89, 70, 47, 93, 94, 36, 0, 105, 0, 27, - 0, 0, 0, 110, 26, 18, 17, 0, 19, 0, - 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, - 22, 35, 37, 0, 23, 33, 0, 0, 34, 0, - 0, 24, 0, 29, 86, 87, 318, 39, 40, 41, - 0, 0, 0, 0, 51, 109, 0, 102, 98, 99, - 100, 95, 96, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 0, 0, 134, 101, 97, 112, 0, 90, - 91, 92, 0, 0, 0, 0, 85, 53, 0, 0, - 0, 74, 75, 25, 77, 78, 0, 0, 0, 54, - 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 104, 73, 14, 0, 32, + 0, 0, 0, 0, 0, 105, 73, 14, 0, 32, 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, - 59, 71, 106, 443, 444, 454, 455, 0, 0, 434, - 0, 105, 0, 0, 0, 0, 0, 0, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 489, - 490, 491, 492, 493, 481, 482, 483, 484, 485, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 0, 501, 499, 500, 496, 497, 0, 0, 488, 494, - 495, 502, 503, 505, 504, 506, 507, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 498, 509, - 508, 0, 0, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 456, 457, 458, 486, 487, 437, 438, 439, - 440, 441, 442, 88, 89, 70, 47, 93, 94, 36, - 0, 105, 0, 27, 0, 0, 0, 110, 26, 18, - 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, - 0, 0, 0, 21, 22, 35, 133, 0, 23, 33, - 0, 433, 34, 0, 0, 24, 0, 29, 86, 87, - 0, 0, 0, 0, 0, 0, 106, 0, 51, 109, - 0, 102, 98, 99, 100, 95, 96, 0, 0, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 134, 101, - 97, 112, 0, 90, 91, 92, 0, 0, 0, 0, - 85, 53, 0, 0, 0, 74, 75, 25, 0, 0, - 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, + 59, 71, 108, 317, 0, 89, 90, 70, 47, 94, + 95, 36, 0, 107, 0, 27, 0, 0, 0, 112, + 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, + 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, + 0, 23, 33, 0, 0, 34, 0, 0, 24, 0, + 29, 87, 88, 323, 39, 40, 41, 0, 0, 0, + 0, 51, 111, 0, 103, 99, 100, 101, 96, 97, + 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, + 0, 136, 102, 98, 114, 0, 91, 92, 93, 0, + 0, 0, 0, 86, 53, 0, 0, 687, 74, 75, + 25, 78, 79, 0, 0, 0, 54, 55, 76, 63, + 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 73, 14, 0, 32, 776, 60, 0, 52, 0, 0, - 0, 57, 56, 58, 59, 71, 106, 88, 89, 70, - 47, 93, 94, 36, 0, 105, 0, 27, 0, 0, - 0, 110, 26, 18, 17, 0, 19, 0, 30, 0, - 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, - 133, 0, 23, 33, 0, 0, 34, 0, 0, 24, - 0, 29, 86, 87, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 109, 0, 102, 98, 99, 100, 95, - 96, 0, 0, 0, 0, 0, 0, 103, 0, 0, - 0, 0, 134, 101, 97, 112, 0, 90, 91, 92, - 0, 0, 0, 0, 85, 53, 0, 0, 0, 74, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 105, 73, 14, 0, 32, 0, 60, + 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, + 108, 317, 0, 89, 90, 70, 47, 94, 95, 36, + 0, 107, 0, 27, 0, 0, 0, 112, 26, 18, + 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, + 0, 0, 0, 21, 22, 35, 37, 106, 0, 23, + 33, 0, 0, 34, 0, 0, 24, 0, 29, 87, + 88, 323, 39, 40, 41, 0, 0, 0, 0, 51, + 111, 0, 103, 99, 100, 101, 96, 97, 0, 0, + 0, 0, 0, 0, 104, 0, 0, 0, 0, 136, + 102, 98, 114, 0, 91, 92, 93, 0, 0, 0, + 0, 86, 53, 0, 0, 0, 74, 75, 25, 78, + 79, 0, 0, 0, 54, 55, 76, 63, 64, 65, + 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 105, 73, 14, 576, 32, 0, 60, 0, 52, + 0, 0, 0, 57, 56, 58, 59, 71, 108, 317, + 0, 89, 90, 70, 47, 94, 95, 36, 0, 107, + 0, 27, 0, 0, 0, 112, 26, 18, 17, 0, + 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, + 0, 21, 22, 35, 37, 106, 0, 23, 33, 0, + 0, 34, 0, 0, 24, 0, 29, 87, 88, 323, + 39, 40, 41, 0, 0, 0, 0, 51, 111, 0, + 103, 99, 100, 101, 96, 97, 0, 0, 0, 0, + 0, 0, 104, 0, 0, 0, 0, 136, 102, 98, + 114, 0, 91, 92, 93, 0, 0, 0, 0, 86, + 53, 0, 0, 0, 74, 75, 25, 78, 79, 0, + 0, 0, 54, 55, 76, 63, 64, 65, 66, 67, + 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, + 73, 14, 316, 32, 0, 60, 0, 52, 0, 0, + 0, 57, 56, 58, 59, 71, 108, 317, 0, 89, + 90, 70, 47, 94, 95, 36, 0, 107, 0, 27, + 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, + 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, + 22, 35, 37, 106, 0, 23, 33, 0, 0, 34, + 0, 0, 24, 0, 29, 87, 88, 323, 39, 40, + 41, 0, 0, 0, 0, 51, 111, 0, 103, 99, + 100, 101, 96, 97, 0, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 136, 102, 98, 114, 0, + 91, 92, 93, 0, 0, 0, 0, 86, 53, 0, + 0, 0, 74, 75, 25, 78, 79, 0, 0, 0, + 54, 55, 76, 63, 64, 65, 66, 67, 68, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 105, 73, 14, + 0, 32, 0, 60, 0, 52, 0, 0, 0, 57, + 56, 58, 59, 71, 108, 449, 450, 460, 461, 0, + 0, 440, 0, 107, 0, 0, 0, 0, 0, 0, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 495, 496, 497, 498, 499, 487, 488, 489, 516, + 490, 491, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 0, 507, 505, 506, 502, 503, 0, + 0, 494, 500, 501, 508, 509, 511, 510, 512, 513, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 504, 515, 514, 0, 0, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 462, 463, 464, 492, 493, + 443, 444, 445, 446, 447, 448, 89, 90, 70, 47, + 94, 95, 36, 0, 107, 0, 27, 0, 0, 0, + 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, + 0, 0, 20, 0, 0, 0, 21, 22, 35, 135, + 106, 0, 23, 33, 0, 439, 34, 0, 0, 24, + 0, 29, 87, 88, 0, 0, 0, 0, 0, 0, + 108, 0, 51, 111, 0, 103, 99, 100, 101, 96, + 97, 0, 0, 0, 0, 0, 0, 104, 0, 0, + 0, 0, 136, 102, 98, 114, 0, 91, 92, 93, + 0, 0, 0, 0, 86, 53, 0, 0, 0, 74, 75, 25, 0, 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 104, 73, 14, 0, 32, 847, 60, - 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, - 106, 88, 89, 70, 47, 93, 94, 36, 0, 105, - 0, 27, 0, 0, 0, 110, 26, 18, 17, 0, - 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, - 0, 21, 22, 35, 133, 0, 23, 33, 0, 0, - 34, 0, 0, 24, 0, 29, 86, 87, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 109, 0, 102, - 98, 99, 100, 95, 96, 0, 0, 0, 0, 0, - 0, 103, 0, 0, 0, 0, 134, 101, 97, 112, - 0, 90, 91, 92, 0, 0, 0, 0, 85, 53, - 0, 0, 0, 74, 75, 25, 0, 0, 0, 0, - 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 104, 73, 14, - 0, 32, 682, 60, 0, 52, 0, 0, 0, 57, - 56, 58, 59, 71, 106, 88, 89, 70, 47, 93, - 94, 36, 0, 105, 0, 27, 0, 0, 0, 110, - 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, - 0, 20, 0, 0, 0, 21, 22, 35, 133, 0, - 23, 33, 0, 0, 34, 0, 0, 24, 0, 29, - 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 109, 0, 102, 98, 99, 100, 95, 96, 0, - 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, - 134, 101, 97, 112, 0, 90, 91, 92, 0, 0, - 0, 0, 85, 53, 0, 0, 0, 74, 75, 25, - 0, 0, 0, 0, 0, 54, 55, 76, 63, 64, - 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 73, 14, 0, 32, 787, + 60, 0, 52, 0, 0, 0, 57, 56, 58, 59, + 71, 108, 89, 90, 70, 47, 94, 95, 36, 0, + 107, 0, 27, 0, 0, 0, 112, 26, 18, 17, + 0, 19, 0, 30, 0, 31, 0, 0, 20, 0, + 0, 0, 21, 22, 35, 135, 106, 0, 23, 33, + 0, 0, 34, 0, 0, 24, 0, 29, 87, 88, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 111, + 0, 103, 99, 100, 101, 96, 97, 0, 0, 0, + 0, 0, 0, 104, 0, 0, 0, 0, 136, 102, + 98, 114, 0, 91, 92, 93, 0, 0, 0, 0, + 86, 53, 0, 0, 0, 74, 75, 25, 0, 0, + 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, + 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 104, 73, 14, 0, 32, 659, 60, 0, 52, - 0, 0, 0, 57, 56, 58, 59, 71, 106, 88, - 89, 70, 47, 93, 94, 36, 0, 105, 0, 27, - 0, 0, 0, 110, 26, 18, 17, 0, 19, 0, - 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, - 22, 35, 133, 0, 23, 33, 0, 0, 34, 0, - 0, 24, 0, 29, 86, 87, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 109, 0, 102, 98, 99, - 100, 95, 96, 0, 0, 0, 0, 0, 0, 103, - 0, 0, 0, 0, 134, 101, 97, 112, 0, 90, - 91, 92, 0, 0, 0, 0, 85, 53, 0, 0, + 105, 73, 14, 0, 32, 854, 60, 0, 52, 0, + 0, 0, 57, 56, 58, 59, 71, 108, 89, 90, + 70, 47, 94, 95, 36, 0, 107, 0, 27, 0, + 0, 0, 112, 26, 18, 17, 0, 19, 0, 30, + 0, 31, 0, 0, 20, 0, 0, 0, 21, 22, + 35, 135, 106, 0, 23, 33, 0, 0, 34, 0, + 0, 24, 0, 29, 87, 88, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 111, 0, 103, 99, 100, + 101, 96, 97, 0, 0, 0, 0, 0, 0, 104, + 0, 0, 0, 0, 136, 102, 98, 114, 0, 91, + 92, 93, 0, 0, 0, 0, 86, 53, 0, 0, 0, 74, 75, 25, 0, 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 104, 73, 14, 0, 32, - 641, 60, 0, 52, 0, 0, 0, 57, 56, 58, - 59, 71, 106, 88, 89, 70, 47, 93, 94, 36, - 0, 105, 0, 27, 0, 0, 0, 110, 26, 18, - 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, - 0, 0, 0, 21, 22, 35, 133, 0, 23, 33, - 0, 0, 34, 0, 0, 24, 0, 29, 86, 87, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 109, - 0, 102, 98, 99, 100, 95, 96, 0, 0, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 134, 101, - 97, 112, 0, 90, 91, 92, 0, 0, 0, 0, - 85, 53, 0, 0, 0, 74, 75, 25, 0, 0, + 0, 0, 0, 0, 0, 0, 105, 73, 14, 0, + 32, 689, 60, 0, 52, 0, 0, 0, 57, 56, + 58, 59, 71, 108, 89, 90, 70, 47, 94, 95, + 36, 0, 107, 0, 27, 0, 0, 0, 112, 26, + 18, 17, 0, 19, 0, 30, 0, 31, 0, 0, + 20, 0, 0, 0, 21, 22, 35, 135, 106, 0, + 23, 33, 0, 0, 34, 0, 0, 24, 0, 29, + 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 111, 0, 103, 99, 100, 101, 96, 97, 0, + 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, + 136, 102, 98, 114, 0, 91, 92, 93, 0, 0, + 0, 0, 86, 53, 0, 0, 0, 74, 75, 25, + 0, 0, 0, 0, 0, 54, 55, 76, 63, 64, + 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 105, 73, 14, 0, 32, 675, 60, 0, + 52, 0, 0, 0, 57, 56, 58, 59, 71, 108, + 89, 90, 70, 47, 94, 95, 36, 0, 107, 0, + 27, 0, 0, 0, 112, 26, 18, 17, 0, 19, + 0, 30, 0, 31, 0, 0, 20, 0, 0, 0, + 21, 22, 35, 135, 106, 0, 23, 33, 0, 0, + 34, 0, 0, 24, 0, 29, 87, 88, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 111, 0, 103, + 99, 100, 101, 96, 97, 0, 0, 0, 0, 0, + 0, 104, 0, 0, 0, 0, 136, 102, 98, 114, + 0, 91, 92, 93, 0, 0, 0, 0, 86, 53, + 0, 0, 0, 74, 75, 25, 0, 0, 0, 0, + 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, + 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 105, 73, + 14, 0, 32, 658, 60, 0, 52, 0, 0, 0, + 57, 56, 58, 59, 71, 108, 89, 90, 70, 47, + 94, 95, 36, 0, 107, 0, 27, 0, 0, 0, + 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, + 0, 0, 20, 0, 0, 0, 21, 22, 35, 135, + 106, 0, 23, 33, 0, 0, 34, 0, 0, 24, + 0, 29, 87, 88, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 111, 0, 103, 99, 100, 101, 96, + 97, 0, 0, 0, 0, 0, 0, 104, 0, 0, + 0, 0, 136, 102, 98, 114, 0, 91, 92, 93, + 0, 0, 0, 0, 86, 53, 0, 0, 0, 74, + 75, 25, 0, 0, 0, 0, 0, 54, 55, 76, + 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 73, 14, 0, 32, 0, + 60, 0, 52, 0, 0, 0, 57, 56, 58, 59, + 71, 108, 449, 450, 460, 461, 0, 0, 888, 0, + 0, 0, 0, 0, 0, 0, 0, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 495, 496, + 497, 498, 499, 487, 488, 489, 516, 490, 491, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 0, 507, 505, 506, 502, 503, 0, 0, 494, 500, + 501, 508, 509, 511, 510, 512, 513, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 887, 515, + 514, 114, 0, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 462, 463, 464, 492, 493, 443, 444, 445, + 446, 447, 448, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, + 450, 460, 461, 0, 0, 888, 0, 0, 0, 0, + 0, 0, 0, 907, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 495, 496, 497, 498, 499, + 487, 488, 489, 516, 490, 491, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 0, 507, 505, + 506, 502, 503, 0, 0, 494, 500, 501, 508, 509, + 511, 510, 512, 513, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 887, 515, 514, 114, 0, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 462, + 463, 464, 492, 493, 443, 444, 445, 446, 447, 448, + 89, 90, 70, 0, 94, 95, 119, 0, 107, 0, + 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 135, 106, 0, 0, 0, 0, 0, + 878, 0, 0, 0, 0, 0, 87, 88, 0, 0, + 0, 0, 0, 0, 0, 0, 231, 111, 0, 103, + 99, 100, 101, 96, 97, 0, 0, 0, 0, 0, + 0, 104, 0, 0, 0, 0, 136, 102, 98, 114, + 230, 91, 92, 93, 0, 0, 0, 0, 86, 53, + 0, 0, 0, 74, 75, 141, 0, 0, 0, 0, + 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, + 69, 0, 0, 0, 89, 90, 70, 0, 94, 95, + 119, 0, 107, 0, 0, 0, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 105, 73, + 0, 0, 0, 0, 60, 0, 52, 135, 106, 229, + 57, 56, 58, 59, 71, 108, 0, 0, 0, 0, + 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 111, 0, 103, 99, 100, 101, 96, 97, 0, + 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, + 136, 102, 98, 114, 542, 91, 92, 93, 0, 0, + 0, 0, 86, 53, 0, 0, 0, 74, 75, 141, + 0, 0, 0, 0, 0, 54, 55, 76, 63, 64, + 65, 66, 67, 68, 69, 0, 0, 0, 89, 90, + 70, 0, 94, 95, 119, 0, 107, 0, 0, 0, + 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 105, 73, 0, 0, 0, 0, 60, 538, + 52, 135, 106, 0, 57, 56, 58, 59, 71, 108, + 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 111, 0, 103, 99, 100, + 101, 96, 97, 0, 0, 0, 0, 0, 0, 104, + 0, 0, 0, 0, 136, 102, 98, 114, 542, 91, + 92, 93, 0, 0, 0, 0, 86, 53, 0, 0, + 0, 74, 75, 141, 0, 0, 0, 0, 0, 54, + 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, + 0, 0, 89, 90, 70, 0, 94, 95, 119, 0, + 107, 0, 0, 0, 0, 0, 112, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 105, 73, 0, 0, + 0, 0, 60, 0, 52, 135, 106, 0, 57, 56, + 58, 59, 71, 108, 0, 0, 0, 0, 87, 88, + 0, 0, 0, 0, 0, 0, 0, 0, 601, 111, + 0, 103, 99, 100, 101, 96, 97, 0, 0, 0, + 0, 0, 0, 104, 0, 0, 0, 0, 136, 102, + 98, 114, 0, 91, 92, 93, 0, 0, 0, 0, + 86, 53, 0, 0, 0, 74, 75, 141, 0, 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 0, 0, 0, 0, 0, + 67, 68, 69, 0, 0, 0, 89, 90, 70, 0, + 94, 95, 119, 432, 107, 0, 0, 0, 0, 0, + 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 105, 73, 0, 0, 0, 0, 60, 0, 52, 135, + 106, 600, 57, 56, 58, 59, 71, 108, 0, 0, + 0, 0, 87, 88, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 111, 0, 103, 99, 100, 101, 96, + 97, 0, 0, 0, 0, 0, 0, 104, 0, 0, + 0, 0, 136, 102, 98, 114, 0, 91, 92, 93, + 0, 0, 0, 0, 86, 53, 0, 0, 0, 74, + 75, 141, 0, 0, 0, 0, 0, 54, 55, 76, + 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, + 89, 90, 70, 0, 94, 95, 119, 0, 107, 0, + 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 73, 0, 0, 0, 0, + 60, 0, 52, 135, 106, 0, 57, 56, 58, 59, + 71, 108, 0, 0, 0, 0, 87, 88, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 111, 0, 103, + 99, 100, 101, 96, 97, 0, 0, 0, 0, 0, + 0, 104, 0, 0, 0, 0, 136, 102, 98, 114, + 0, 91, 92, 93, 0, 0, 0, 0, 86, 53, + 0, 0, 0, 74, 75, 141, 0, 0, 0, 0, + 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, + 69, 0, 0, 0, 89, 90, 70, 0, 94, 95, + 119, 0, 107, 0, 0, 0, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 105, 73, + 0, 0, 0, 0, 60, 0, 52, 135, 106, 393, + 57, 56, 58, 59, 71, 108, 0, 0, 0, 0, + 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 111, 0, 103, 99, 100, 101, 96, 97, 0, + 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, + 136, 102, 98, 114, 0, 91, 92, 93, 0, 0, + 0, 0, 86, 53, 0, 0, 0, 74, 75, 141, + 0, 0, 0, 0, 0, 54, 55, 76, 63, 64, + 65, 66, 67, 68, 69, 0, 0, 0, 89, 90, + 70, 0, 94, 95, 119, 0, 107, 0, 0, 0, + 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 105, 73, 0, 0, 0, 369, 60, 0, + 52, 135, 106, 0, 57, 56, 58, 59, 71, 108, + 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 111, 0, 103, 99, 100, + 101, 96, 97, 0, 0, 0, 0, 0, 0, 104, + 0, 0, 0, 0, 136, 102, 98, 114, 0, 91, + 92, 93, 0, 0, 0, 0, 86, 53, 0, 0, + 0, 74, 75, 141, 0, 0, 0, 0, 0, 54, + 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, + 0, 157, 159, 158, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 73, 14, 0, 32, 0, 60, 0, 52, 0, 0, - 0, 57, 56, 58, 59, 71, 106, 443, 444, 454, - 455, 0, 0, 882, 0, 0, 0, 0, 0, 0, - 0, 0, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 489, 490, 491, 492, 493, 481, 482, - 483, 484, 485, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 0, 501, 499, 500, 496, 497, - 0, 0, 488, 494, 495, 502, 503, 505, 504, 506, - 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 881, 509, 508, 112, 0, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 456, 457, 458, 486, - 487, 437, 438, 439, 440, 441, 442, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 105, 73, 183, 180, + 0, 0, 60, 0, 52, 0, 0, 0, 57, 56, + 58, 59, 71, 108, 155, 156, 167, 170, 171, 172, + 173, 174, 175, 177, 179, 0, 157, 159, 158, 181, + 0, 0, 0, 0, 763, 182, 161, 165, 164, 0, + 0, 0, 0, 0, 160, 0, 162, 166, 168, 169, + 176, 178, 163, 183, 180, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, + 156, 167, 170, 171, 172, 173, 174, 175, 177, 179, + 0, 157, 159, 158, 181, 0, 0, 721, 0, 0, + 182, 161, 165, 164, 0, 0, 0, 0, 0, 160, + 0, 162, 166, 168, 169, 176, 178, 163, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 156, 167, 170, 171, 172, + 173, 174, 175, 177, 179, 0, 0, 0, 701, 157, + 159, 158, 181, 0, 0, 182, 161, 165, 164, 0, + 0, 0, 0, 0, 160, 0, 162, 166, 168, 169, + 176, 178, 163, 0, 0, 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 443, 444, 454, 455, 0, 0, 882, 0, - 0, 0, 0, 0, 0, 0, 900, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 489, 490, - 491, 492, 493, 481, 482, 483, 484, 485, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 0, - 501, 499, 500, 496, 497, 0, 0, 488, 494, 495, - 502, 503, 505, 504, 506, 507, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 881, 509, 508, - 112, 0, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 456, 457, 458, 486, 487, 437, 438, 439, 440, - 441, 442, 88, 89, 70, 0, 93, 94, 117, 0, - 105, 0, 0, 0, 0, 0, 110, 0, 0, 0, + 0, 0, 155, 156, 167, 170, 171, 172, 173, 174, + 175, 177, 179, 0, 0, 0, 699, 157, 159, 158, + 181, 0, 0, 182, 161, 165, 164, 0, 0, 0, + 0, 0, 160, 0, 162, 166, 168, 169, 176, 178, + 163, 0, 0, 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, - 0, 872, 0, 0, 0, 0, 0, 86, 87, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 109, 0, - 102, 98, 99, 100, 95, 96, 0, 0, 0, 0, - 0, 0, 103, 0, 0, 0, 0, 134, 101, 97, - 112, 534, 90, 91, 92, 0, 0, 0, 0, 85, - 53, 0, 0, 0, 74, 75, 139, 0, 0, 0, - 0, 0, 54, 55, 76, 63, 64, 65, 66, 67, - 68, 69, 0, 0, 88, 89, 70, 0, 93, 94, - 117, 0, 105, 0, 0, 0, 0, 0, 110, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 104, 73, - 0, 0, 0, 0, 60, 530, 52, 133, 0, 0, - 57, 56, 58, 59, 71, 106, 0, 0, 0, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 0, 227, - 109, 0, 102, 98, 99, 100, 95, 96, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 134, - 101, 97, 112, 0, 90, 91, 92, 0, 0, 0, - 0, 85, 53, 0, 0, 0, 74, 75, 139, 0, - 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, - 66, 67, 68, 69, 88, 89, 70, 0, 93, 94, - 117, 0, 105, 0, 0, 0, 0, 0, 110, 0, + 155, 156, 167, 170, 171, 172, 173, 174, 175, 177, + 179, 0, 0, 0, 690, 157, 159, 158, 181, 0, + 0, 182, 161, 165, 164, 0, 0, 0, 0, 0, + 160, 0, 162, 166, 168, 169, 176, 178, 163, 0, + 0, 0, 183, 180, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 156, + 167, 170, 171, 172, 173, 174, 175, 177, 179, 0, + 157, 159, 158, 181, 0, 0, 686, 0, 0, 182, + 161, 165, 164, 0, 0, 0, 0, 0, 160, 0, + 162, 166, 168, 169, 176, 178, 163, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 73, 0, 0, 0, 0, 60, 133, 52, 0, - 0, 226, 57, 56, 58, 59, 71, 106, 0, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 109, 0, 102, 98, 99, 100, 95, 96, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 134, - 101, 97, 112, 534, 90, 91, 92, 0, 0, 0, - 0, 85, 53, 0, 0, 0, 74, 75, 139, 0, - 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, - 66, 67, 68, 69, 88, 89, 70, 0, 93, 94, - 117, 0, 105, 0, 0, 0, 0, 0, 110, 0, + 0, 0, 0, 155, 156, 167, 170, 171, 172, 173, + 174, 175, 177, 179, 0, 157, 159, 158, 181, 0, + 0, 685, 0, 0, 182, 161, 165, 164, 0, 0, + 0, 0, 0, 160, 0, 162, 166, 168, 169, 176, + 178, 163, 183, 180, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 156, + 167, 170, 171, 172, 173, 174, 175, 177, 179, 0, + 0, 0, 641, 157, 159, 158, 181, 0, 0, 182, + 161, 165, 164, 0, 0, 0, 0, 0, 160, 0, + 162, 166, 168, 169, 176, 178, 163, 0, 0, 0, + 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 156, 167, 170, + 171, 172, 173, 174, 175, 177, 179, 0, 157, 159, + 158, 181, 0, 0, 630, 0, 0, 182, 161, 165, + 164, 0, 0, 0, 0, 0, 160, 0, 162, 166, + 168, 169, 176, 178, 163, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 73, 0, 0, 0, 0, 60, 133, 52, 0, - 0, 0, 57, 56, 58, 59, 71, 106, 0, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 0, 594, - 109, 0, 102, 98, 99, 100, 95, 96, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 134, - 101, 97, 112, 0, 90, 91, 92, 0, 0, 0, - 0, 85, 53, 0, 0, 0, 74, 75, 139, 0, - 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, - 66, 67, 68, 69, 88, 89, 70, 0, 93, 94, - 117, 426, 105, 0, 0, 0, 0, 0, 110, 0, + 0, 155, 156, 167, 170, 171, 172, 173, 174, 175, + 177, 179, 0, 157, 159, 158, 181, 0, 0, 629, + 0, 0, 182, 161, 165, 164, 0, 0, 0, 0, + 0, 160, 0, 162, 166, 168, 169, 176, 178, 163, + 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 156, 167, 170, + 171, 172, 173, 174, 175, 177, 179, 0, 0, 0, + 612, 157, 159, 158, 181, 0, 0, 182, 161, 165, + 164, 0, 0, 0, 0, 0, 160, 0, 162, 166, + 168, 169, 176, 178, 163, 0, 0, 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 73, 0, 0, 0, 0, 60, 133, 52, 0, - 0, 593, 57, 56, 58, 59, 71, 106, 0, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 109, 0, 102, 98, 99, 100, 95, 96, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 134, - 101, 97, 112, 0, 90, 91, 92, 0, 0, 0, - 0, 85, 53, 0, 0, 0, 74, 75, 139, 0, - 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, - 66, 67, 68, 69, 88, 89, 70, 0, 93, 94, - 117, 0, 105, 0, 0, 0, 0, 0, 110, 0, + 0, 0, 0, 0, 155, 156, 167, 170, 171, 172, + 173, 174, 175, 177, 179, 0, 157, 159, 158, 181, + 0, 0, 603, 0, 0, 182, 161, 165, 164, 0, + 0, 0, 0, 0, 160, 0, 162, 166, 168, 169, + 176, 178, 163, 183, 180, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, + 156, 167, 170, 171, 172, 173, 174, 175, 177, 179, + 574, 0, 0, 593, 157, 159, 158, 181, 0, 0, + 182, 161, 165, 164, 0, 0, 0, 0, 0, 160, + 0, 162, 166, 168, 169, 176, 178, 163, 0, 0, + 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 156, 167, + 170, 171, 172, 173, 174, 175, 177, 179, 0, 157, + 159, 158, 181, 0, 0, 591, 0, 0, 182, 161, + 165, 164, 0, 0, 0, 0, 0, 160, 0, 162, + 166, 168, 169, 176, 178, 163, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 73, 0, 0, 0, 0, 60, 133, 52, 0, - 0, 0, 57, 56, 58, 59, 71, 106, 0, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 109, 0, 102, 98, 99, 100, 95, 96, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 134, - 101, 97, 112, 0, 90, 91, 92, 0, 0, 0, - 0, 85, 53, 0, 0, 0, 74, 75, 139, 0, - 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, - 66, 67, 68, 69, 88, 89, 70, 0, 93, 94, - 117, 0, 105, 0, 0, 0, 0, 0, 110, 0, + 0, 0, 155, 156, 167, 170, 171, 172, 173, 174, + 175, 177, 179, 0, 157, 159, 158, 181, 0, 0, + 0, 0, 0, 182, 161, 165, 164, 0, 0, 0, + 0, 0, 160, 0, 162, 166, 168, 169, 176, 178, + 163, 183, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 156, 167, + 170, 171, 172, 173, 174, 175, 177, 179, 0, 157, + 159, 158, 181, 570, 0, 0, 0, 0, 182, 161, + 165, 164, 0, 0, 0, 0, 0, 160, 0, 162, + 166, 168, 169, 176, 178, 163, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 73, 0, 0, 0, 0, 60, 133, 52, 0, - 0, 389, 57, 56, 58, 59, 71, 106, 0, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 109, 0, 102, 98, 99, 100, 95, 96, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 134, - 101, 97, 112, 0, 90, 91, 92, 0, 0, 0, - 0, 85, 53, 0, 0, 0, 74, 75, 139, 0, - 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, - 66, 67, 68, 69, 88, 89, 70, 0, 93, 94, - 117, 0, 105, 0, 0, 0, 0, 0, 110, 0, + 0, 0, 155, 156, 167, 170, 171, 172, 173, 174, + 175, 177, 179, 0, 157, 159, 158, 181, 0, 0, + 565, 0, 0, 182, 161, 165, 164, 0, 0, 0, + 0, 0, 160, 0, 162, 166, 168, 169, 176, 178, + 163, 183, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 156, 167, + 170, 171, 172, 173, 174, 175, 177, 179, 0, 157, + 159, 158, 181, 0, 0, 561, 0, 0, 182, 161, + 165, 164, 0, 0, 0, 0, 0, 160, 0, 162, + 166, 168, 169, 176, 178, 163, 183, 180, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 417, 0, + 0, 0, 155, 156, 167, 170, 171, 172, 173, 174, + 175, 177, 179, 0, 0, 0, 0, 0, 0, 0, + 423, 0, 0, 182, 161, 165, 164, 157, 159, 158, + 181, 0, 160, 0, 162, 166, 168, 169, 176, 178, + 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 73, 0, 0, 0, 365, 60, 133, 52, 0, - 0, 0, 57, 56, 58, 59, 71, 106, 0, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 109, 0, 102, 98, 99, 100, 95, 96, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 134, - 101, 97, 112, 0, 90, 91, 92, 0, 0, 0, - 0, 85, 53, 0, 0, 0, 74, 75, 139, 0, - 0, 0, 0, 0, 54, 55, 76, 63, 64, 65, - 66, 67, 68, 69, 0, 0, 155, 157, 156, 179, + 155, 156, 167, 170, 171, 172, 173, 174, 175, 177, + 179, 0, 157, 159, 158, 181, 0, 0, 0, 0, + 0, 182, 161, 165, 164, 0, 0, 0, 0, 0, + 160, 0, 162, 166, 168, 169, 176, 178, 163, 183, + 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 156, 167, 170, 171, + 172, 173, 174, 175, 177, 179, 0, 0, 0, 0, + 377, 157, 159, 158, 181, 0, 182, 161, 165, 164, + 0, 0, 0, 0, 0, 160, 0, 162, 166, 168, + 169, 176, 178, 163, 0, 0, 0, 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 156, 167, 170, 171, 172, + 173, 174, 175, 177, 179, 0, 0, 0, 0, 154, + 157, 159, 158, 181, 0, 182, 161, 165, 164, 0, + 0, 0, 0, 0, 160, 0, 162, 166, 168, 169, + 176, 178, 163, 0, 0, 0, 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 73, 0, 181, 178, 0, 60, 0, 52, 0, - 0, 0, 57, 56, 58, 59, 71, 106, 153, 154, - 165, 168, 169, 170, 171, 172, 173, 175, 177, 0, - 155, 157, 156, 179, 0, 0, 0, 0, 756, 180, - 159, 163, 162, 0, 0, 0, 0, 0, 158, 0, - 160, 164, 166, 167, 174, 176, 161, 181, 178, 0, + 0, 0, 0, 155, 156, 167, 170, 171, 172, 173, + 174, 175, 177, 179, 0, 0, 159, 158, 181, 0, + 0, 0, 0, 0, 182, 161, 165, 164, 0, 0, + 0, 0, 0, 160, 0, 162, 166, 168, 169, 176, + 178, 163, 183, 180, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 156, + 167, 170, 171, 172, 173, 174, 175, 177, 179, 0, + 0, 0, 158, 181, 0, 0, 0, 0, 0, 182, + 161, 165, 164, 0, 0, 0, 0, 0, 160, 0, + 162, 166, 168, 169, 176, 178, 163, 183, 180, 434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 153, 154, 165, 168, 169, 170, 171, 172, - 173, 175, 177, 0, 155, 157, 156, 179, 0, 0, - 709, 0, 0, 180, 159, 163, 162, 0, 0, 0, - 0, 0, 158, 0, 160, 164, 166, 167, 174, 176, - 161, 181, 178, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 153, 154, 165, 168, - 169, 170, 171, 172, 173, 175, 177, 0, 0, 0, - 694, 155, 157, 156, 179, 0, 0, 180, 159, 163, - 162, 0, 0, 0, 0, 0, 158, 0, 160, 164, - 166, 167, 174, 176, 161, 0, 0, 0, 181, 178, + 0, 0, 0, 155, 156, 167, 170, 171, 172, 173, + 174, 175, 177, 179, 0, 0, 0, 0, 0, 0, + 0, 181, 0, 0, 182, 161, 165, 164, 0, 0, + 0, 0, 0, 160, 0, 162, 166, 168, 169, 176, + 178, 163, 0, 0, 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 153, 154, 165, 168, 169, 170, 171, - 172, 173, 175, 177, 0, 0, 0, 692, 155, 157, - 156, 179, 0, 0, 180, 159, 163, 162, 0, 0, - 0, 0, 0, 158, 0, 160, 164, 166, 167, 174, - 176, 161, 0, 0, 0, 181, 178, 0, 0, 0, + 0, 155, 156, 167, 170, 171, 172, 173, 174, 175, + 177, 179, 0, 0, 0, 0, 181, 0, 0, 0, + 0, 0, 182, 161, 165, 164, 0, 0, 0, 0, + 0, 160, 0, 162, 166, 168, 169, 176, 178, 163, + 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 156, 167, 170, + 171, 172, 173, 174, 175, 177, 179, 0, 0, 0, + 0, 181, 0, 0, 0, 0, 0, 182, 161, 165, + 164, 0, 0, 0, 0, 0, 160, 0, 162, 166, + 168, 169, 176, 178, 163, 183, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 153, 154, 165, 168, 169, 170, 171, 172, 173, 175, - 177, 0, 0, 0, 683, 155, 157, 156, 179, 0, - 0, 180, 159, 163, 162, 0, 0, 0, 0, 0, - 158, 0, 160, 164, 166, 167, 174, 176, 161, 0, - 0, 0, 181, 178, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 153, 154, 165, - 168, 169, 170, 171, 172, 173, 175, 177, 0, 155, - 157, 156, 179, 0, 0, 679, 0, 0, 180, 159, - 163, 162, 0, 0, 0, 0, 0, 158, 0, 160, - 164, 166, 167, 174, 176, 161, 181, 178, 0, 0, + 0, 155, 156, 167, 170, 171, 172, 173, 174, 175, + 177, 179, 0, 0, 0, 181, 0, 0, 0, 0, + 0, 0, 0, 161, 165, 164, 0, 0, 0, 0, + 0, 160, 0, 162, 166, 168, 169, 176, 178, 163, + 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 181, 156, 167, 170, 171, + 172, 173, 174, 175, 177, 179, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 161, 165, 164, + 180, 0, 0, 0, 0, 160, 0, 162, 166, 168, + 169, 176, 178, 163, 0, 181, 0, 167, 170, 171, + 172, 173, 174, 175, 177, 179, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 161, 165, 164, + 180, 0, 0, 0, 0, 160, 0, 162, 166, 168, + 169, 176, 178, 163, 0, 181, 0, 167, 170, 171, + 172, 173, 174, 175, 177, 179, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 161, 165, 164, + 180, 0, 0, 0, 0, 0, 0, 162, 166, 168, + 169, 176, 178, 163, 0, 181, 0, 167, 170, 171, + 172, 173, 174, 175, 177, 179, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 161, 165, 164, + 180, 0, 0, 0, 0, 0, 0, 0, 166, 168, + 169, 176, 178, 163, 0, 0, 0, 167, 170, 171, + 172, 173, 174, 175, 177, 179, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 165, 164, + 449, 450, 460, 461, 0, 0, 440, 0, 166, 168, + 169, 176, 178, 163, 0, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 495, 496, 497, 498, + 499, 487, 488, 489, 516, 490, 491, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 0, 507, + 505, 506, 502, 503, 0, 0, 494, 500, 501, 508, + 509, 511, 510, 512, 513, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 504, 515, 514, 0, + 0, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 462, 463, 464, 492, 493, 443, 444, 445, 446, 447, + 448, 449, 450, 460, 461, 0, 0, 923, 0, 0, + 0, 0, 0, 0, 0, 0, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 495, 496, 497, + 498, 499, 487, 488, 489, 516, 490, 491, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 0, + 507, 505, 506, 502, 503, 0, 0, 494, 500, 501, + 508, 509, 511, 510, 512, 513, 119, 0, 107, 0, + 0, 0, 0, 0, 112, 0, 0, 504, 515, 514, + 0, 0, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 462, 463, 464, 492, 493, 752, 753, 754, 751, + 750, 749, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 671, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 154, 165, 168, 169, 170, 171, 172, 173, - 175, 177, 0, 155, 157, 156, 179, 0, 0, 678, - 0, 0, 180, 159, 163, 162, 0, 0, 0, 0, - 0, 158, 0, 160, 164, 166, 167, 174, 176, 161, - 181, 178, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 153, 154, 165, 168, 169, - 170, 171, 172, 173, 175, 177, 0, 0, 0, 624, - 155, 157, 156, 179, 0, 0, 180, 159, 163, 162, - 0, 0, 0, 0, 0, 158, 0, 160, 164, 166, - 167, 174, 176, 161, 0, 0, 0, 181, 178, 0, + 0, 0, 0, 0, 0, 0, 136, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 153, 154, 165, 168, 169, 170, 171, 172, - 173, 175, 177, 0, 155, 157, 156, 179, 0, 0, - 623, 0, 0, 180, 159, 163, 162, 0, 0, 0, - 0, 0, 158, 0, 160, 164, 166, 167, 174, 176, - 161, 181, 178, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 153, 154, 165, 168, - 169, 170, 171, 172, 173, 175, 177, 0, 155, 157, - 156, 179, 0, 0, 622, 0, 0, 180, 159, 163, - 162, 0, 0, 0, 0, 0, 158, 0, 160, 164, - 166, 167, 174, 176, 161, 181, 178, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 153, 154, 165, 168, 169, 170, 171, 172, 173, 175, - 177, 0, 0, 0, 605, 155, 157, 156, 179, 0, - 0, 180, 159, 163, 162, 0, 0, 0, 0, 0, - 158, 0, 160, 164, 166, 167, 174, 176, 161, 0, - 0, 0, 181, 178, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 153, 154, 165, - 168, 169, 170, 171, 172, 173, 175, 177, 0, 155, - 157, 156, 179, 0, 0, 596, 0, 0, 180, 159, - 163, 162, 0, 0, 0, 0, 0, 158, 0, 160, - 164, 166, 167, 174, 176, 161, 181, 178, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 154, 165, 168, 169, 170, 171, 172, 173, - 175, 177, 567, 0, 0, 586, 155, 157, 156, 179, - 0, 0, 180, 159, 163, 162, 0, 0, 0, 0, - 0, 158, 0, 160, 164, 166, 167, 174, 176, 161, - 0, 0, 0, 181, 178, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 153, 154, - 165, 168, 169, 170, 171, 172, 173, 175, 177, 0, - 155, 157, 156, 179, 0, 0, 584, 0, 0, 180, - 159, 163, 162, 0, 0, 0, 0, 0, 158, 0, - 160, 164, 166, 167, 174, 176, 161, 181, 178, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 153, 154, 165, 168, 169, 170, 171, 172, - 173, 175, 177, 0, 155, 157, 156, 179, 0, 0, - 0, 0, 0, 180, 159, 163, 162, 0, 0, 0, - 0, 0, 158, 0, 160, 164, 166, 167, 174, 176, - 161, 181, 178, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 153, 154, 165, 168, - 169, 170, 171, 172, 173, 175, 177, 0, 155, 157, - 156, 179, 563, 0, 0, 0, 0, 180, 159, 163, - 162, 0, 0, 0, 0, 0, 158, 0, 160, 164, - 166, 167, 174, 176, 161, 181, 178, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 153, 154, 165, 168, 169, 170, 171, 172, 173, 175, - 177, 0, 155, 157, 156, 179, 0, 0, 557, 0, - 0, 180, 159, 163, 162, 0, 0, 0, 0, 0, - 158, 0, 160, 164, 166, 167, 174, 176, 161, 181, - 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 153, 154, 165, 168, 169, 170, - 171, 172, 173, 175, 177, 0, 155, 157, 156, 179, - 0, 0, 553, 0, 0, 180, 159, 163, 162, 0, - 0, 0, 0, 0, 158, 0, 160, 164, 166, 167, - 174, 176, 161, 181, 178, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 412, 0, 0, 0, 153, 154, - 165, 168, 169, 170, 171, 172, 173, 175, 177, 0, - 0, 0, 0, 0, 0, 0, 417, 0, 0, 180, - 159, 163, 162, 155, 157, 156, 179, 0, 158, 0, - 160, 164, 166, 167, 174, 176, 161, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 181, 178, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 153, 154, 165, 168, 169, - 170, 171, 172, 173, 175, 177, 0, 155, 157, 156, - 179, 0, 0, 0, 0, 0, 180, 159, 163, 162, - 0, 0, 0, 0, 0, 158, 0, 160, 164, 166, - 167, 174, 176, 161, 181, 178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, - 154, 165, 168, 169, 170, 171, 172, 173, 175, 177, - 0, 0, 0, 0, 373, 155, 157, 156, 179, 0, - 180, 159, 163, 162, 0, 0, 0, 0, 0, 158, - 0, 160, 164, 166, 167, 174, 176, 161, 0, 0, - 0, 0, 181, 178, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 153, 154, 165, - 168, 169, 170, 171, 172, 173, 175, 177, 0, 0, - 0, 0, 152, 155, 157, 156, 179, 0, 180, 159, - 163, 162, 0, 0, 0, 0, 0, 158, 0, 160, - 164, 166, 167, 174, 176, 161, 0, 0, 0, 0, - 181, 178, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 153, 154, 165, 168, 169, - 170, 171, 172, 173, 175, 177, 0, 0, 157, 156, - 179, 0, 0, 0, 0, 0, 180, 159, 163, 162, - 0, 0, 0, 0, 0, 158, 0, 160, 164, 166, - 167, 174, 176, 161, 181, 178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, - 154, 165, 168, 169, 170, 171, 172, 173, 175, 177, - 0, 0, 0, 156, 179, 0, 0, 0, 0, 0, - 180, 159, 163, 162, 0, 0, 0, 0, 0, 158, - 0, 160, 164, 166, 167, 174, 176, 161, 181, 178, - 428, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 153, 154, 165, 168, 169, 170, 171, - 172, 173, 175, 177, 0, 0, 0, 0, 0, 0, - 0, 0, 179, 0, 180, 159, 163, 162, 0, 0, - 0, 0, 0, 158, 0, 160, 164, 166, 167, 174, - 176, 161, 0, 0, 0, 0, 181, 178, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 154, 165, 168, 169, 170, 171, 172, 173, - 175, 177, 0, 0, 0, 0, 179, 0, 0, 0, - 0, 0, 180, 159, 163, 162, 0, 0, 0, 0, - 0, 158, 0, 160, 164, 166, 167, 174, 176, 161, - 181, 178, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 153, 154, 165, 168, 169, - 170, 171, 172, 173, 175, 177, 0, 0, 0, 0, - 179, 0, 0, 0, 0, 0, 180, 159, 163, 162, - 0, 0, 0, 0, 0, 158, 0, 160, 164, 166, - 167, 174, 176, 161, 181, 178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, - 154, 165, 168, 169, 170, 171, 172, 173, 175, 177, - 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, - 0, 159, 163, 162, 0, 0, 0, 0, 0, 158, - 0, 160, 164, 166, 167, 174, 176, 161, 178, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 179, 154, 165, 168, 169, 170, 171, 172, - 173, 175, 177, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 159, 163, 162, 178, 0, 0, - 0, 0, 158, 0, 160, 164, 166, 167, 174, 176, - 161, 179, 0, 165, 168, 169, 170, 171, 172, 173, - 175, 177, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 159, 163, 162, 178, 0, 0, 0, - 0, 158, 0, 160, 164, 166, 167, 174, 176, 161, - 179, 0, 165, 168, 169, 170, 171, 172, 173, 175, - 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 163, 162, 178, 0, 0, 0, 0, - 0, 0, 160, 164, 166, 167, 174, 176, 161, 179, - 0, 165, 168, 169, 170, 171, 172, 173, 175, 177, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 163, 162, 178, 0, 0, 0, 0, 0, - 0, 0, 164, 166, 167, 174, 176, 161, 0, 0, - 165, 168, 169, 170, 171, 172, 173, 175, 177, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 163, 162, 443, 444, 454, 455, 0, 0, 434, - 0, 164, 166, 167, 174, 176, 161, 0, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 489, - 490, 491, 492, 493, 481, 482, 483, 484, 485, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 0, 501, 499, 500, 496, 497, 0, 0, 488, 494, - 495, 502, 503, 505, 504, 506, 507, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 498, 509, - 508, 0, 0, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 456, 457, 458, 486, 487, 437, 438, 439, - 440, 441, 442, 443, 444, 454, 455, 0, 0, 916, - 0, 0, 0, 0, 0, 0, 0, 0, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 489, - 490, 491, 492, 493, 481, 482, 483, 484, 485, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 0, 501, 499, 500, 496, 497, 0, 0, 488, 494, - 495, 502, 503, 505, 504, 506, 507, 117, 0, 105, - 0, 0, 0, 0, 0, 110, 0, 0, 498, 509, - 508, 0, 0, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 456, 457, 458, 486, 487, 745, 746, 747, - 744, 743, 742, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 655, 109, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 134, 0, 0, 112, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 231, 0, 656, 0, 0, 654, 0, - 0, 0, 0, 0, 106, + 0, 0, 0, 0, 235, 0, 672, 0, 0, 670, + 0, 0, 0, 0, 0, 108, } var yyPact = [...]int{ - -1000, -1000, 1241, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 224, 451, 569, 683, -1000, -1000, -1000, 217, 4449, 214, - 211, 5600, 5600, 5600, 131, 640, 5600, -1000, 6798, 209, - 207, 206, -1000, 379, 5600, 724, 232, 0, 495, 721, - 715, 713, 455, 446, 940, -1000, -1000, 205, -1000, -1000, - 126, 204, 4940, 5600, 618, 618, 5600, 5600, 5600, 5600, - 5600, -1000, -1000, 5600, 5600, 5600, 5600, 5600, 5600, 5600, - 203, 5600, -1000, 827, 5600, 5600, 5600, -1000, -1000, -1000, - 82, -1000, 503, 500, -1000, 280, 202, 200, 5600, 5600, - 192, 5600, 5600, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 787, 799, -1000, 136, 172, 172, 190, - -1000, 487, 662, 139, 662, 227, -1000, -1000, 314, 553, - -13, 542, 662, -1000, -1000, -1000, -1000, -28, -1000, -58, - 3269, 5600, 594, 0, 462, 5600, 5600, 313, 6856, 567, - 311, 302, -29, -1000, -1000, -30, 0, -1000, -59, -32, - -1000, 6856, -1000, 5600, 5600, 5600, 5600, 5600, 5600, 5600, - 5600, 5600, 5600, 5600, 5600, 5600, 5600, 5600, 5600, 5600, - 5600, 5600, 5600, 5600, 5600, 5600, 5600, 5600, 5600, 344, - 5490, 5600, 618, 5600, 683, -1000, 6740, 301, -1000, 710, - -1000, 703, -1000, 532, -1000, 543, 188, 4449, 185, 300, - 216, 5380, 5600, 5600, 5600, 5600, 5600, 5600, 5600, 5600, - 5600, 5600, 5600, 5600, -1000, -1000, 5600, 5600, 5600, 95, - 4940, 74, -11, -1000, -1000, 6686, 618, 183, -1000, -1000, - 82, 5600, -1000, -1000, 4940, -1000, 403, 403, 412, 403, - 6619, 403, 403, 403, 403, 403, 403, 403, -1000, 5600, - 403, 388, 619, 793, -1000, 163, 5270, 618, 7076, 7022, - 7076, 5600, 3579, 3579, 172, -1000, 499, 191, 172, -1000, - -1000, 5600, 5600, 6856, 6856, 5600, 6856, 6856, 705, -1000, - 695, 498, 619, 5600, -1000, -1000, 4828, -1000, 4940, 694, - 487, 299, 487, -1000, -1000, 1085, -1000, 296, -33, 537, - 662, -1000, 552, 472, 693, 531, -1000, -1000, 683, 5600, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 182, 6565, - 180, -1000, 295, -12, 6856, 6511, -1000, -1000, -1000, -1000, - 131, -1000, 646, -1000, 5600, -1000, 5600, 7183, 7222, 6910, - 7076, 6964, 7261, 7339, 7300, 132, 132, 132, 412, 403, - 412, 412, 254, 254, 321, 321, 321, 321, 150, 150, - 150, 150, 321, -1000, 6457, 5600, 7130, -14, -1000, -1000, - 6403, -34, 3113, -1000, -1000, -1000, 179, 532, 520, 544, - 377, -1000, 544, 5600, -1000, 5600, -1000, -1000, 7076, 5600, - 7076, 7076, 7076, 7076, 7076, 7076, 7076, 7076, 7076, 7076, - 7076, 7076, 6349, 67, 6292, 172, -1000, 5600, -1000, 130, - -65, 4940, 5160, -1000, 4940, 6238, 66, -1000, 128, -1000, - -1000, -1000, -1000, 215, 665, 6181, 52, 334, 5600, 43, - 172, -1000, -1000, 5600, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1251, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 264, 483, 651, 766, -1000, -1000, -1000, 262, 4342, 261, + 259, 5524, 5524, 5524, 183, 776, 5524, -1000, 6743, 258, + 257, 256, -1000, 405, 5524, 820, 281, 32, 504, 819, + 805, 799, 456, 507, 408, -1000, -1000, 254, -1000, -1000, + 134, 253, 4726, 5524, 688, 688, 5524, 5524, 5524, 5524, + 5524, -1000, -1000, 5524, 5524, 5524, 5524, 5524, 5524, 5524, + 252, 5524, -1000, 811, 5524, 5524, 5524, -1000, -1000, -1000, + -1000, 101, -1000, 517, 506, -1000, 184, 251, 249, 5524, + 5524, 244, 5524, 5524, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 765, 757, 32, -1000, 215, 203, + 203, 239, -1000, 490, 737, 170, 737, 295, -1000, -1000, + 345, 602, -9, 619, 737, -1000, -1000, -1000, -1000, -15, + -1000, -59, 3147, 5524, 700, 32, 477, 5524, 5524, 337, + 6802, 666, 333, 332, -18, -1000, -1000, -19, -1000, -1000, + -60, -24, -1000, 6802, -1000, 5524, 5524, 5524, 5524, 5524, + 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, + 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, + 5524, 230, 5410, 5524, 688, 5524, 766, -1000, 6684, 331, + -1000, 794, -1000, 785, -1000, 591, -1000, 595, 233, 4342, + 228, 319, 275, 5296, 5524, 5524, 5524, 5524, 5524, 5524, + 5524, 5524, 5524, 5524, 5524, 5524, 5524, -1000, -1000, 5524, + 5524, 5524, 104, 4726, 98, 22, -1000, -1000, 6629, 688, + 5524, 225, -1000, -1000, 101, 5524, -1000, -1000, 4726, -1000, + 412, 412, 461, 412, 6561, 412, 412, 412, 412, 412, + 412, 412, -1000, 5524, 412, 219, 616, 707, -1000, 198, + 5182, 688, 7025, 6970, 7025, 5524, 3461, 3461, 203, -1000, + 505, 227, 203, -1000, -1000, 5524, 5524, 6802, 6802, 5524, + 6802, 6802, 742, -1000, 734, 575, 616, 221, 5524, -1000, + -1000, 4840, -1000, 4726, 782, 490, 318, 490, -1000, -1000, + 1093, -1000, 316, -28, 582, 737, -1000, 597, 511, 770, + 551, -1000, -1000, 766, 5524, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 218, 6506, 216, -1000, 315, -8, 6802, + 6451, -1000, -1000, -1000, -1000, 183, -1000, 733, 5524, -1000, + 5524, 7134, 7174, 6857, 7025, 6912, 7214, 7294, 7254, 132, + 132, 132, 461, 412, 461, 461, 64, 64, 168, 168, + 168, 168, 351, 351, 351, 351, 168, -1000, 6396, 5524, + 7080, -11, -1000, -1000, 6341, -30, 2989, -1000, -1000, -1000, + 212, 591, 569, 587, 403, -1000, 587, 5524, -1000, 5524, + -1000, -1000, 7025, 5524, 7025, 7025, 7025, 7025, 7025, 7025, + 7025, 7025, 7025, 7025, 7025, 7025, 7025, 6286, 96, 6228, + 203, -1000, 5524, -1000, 167, -65, 4726, 5068, -1000, 6802, + 4726, 6173, 84, -1000, 165, -1000, -1000, -1000, -1000, 190, + 751, 6115, 93, 363, 5524, 81, 203, -1000, -1000, 5524, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1380,98 +1381,98 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 172, -1000, -1000, -1000, -1000, 131, 5600, 5600, 95, 131, - 532, -18, -1000, 6856, 6127, 6073, -1000, -1000, -1000, 6016, - -1000, -19, -1000, 6856, 5600, 124, -1000, -1000, 929, -1000, - -1000, -1000, 461, 517, -1000, 662, 508, 644, -1000, 460, - -1000, 6856, 118, 4295, 5600, 5600, 5600, 177, -1000, -1000, - 170, 6856, -1000, 5600, 7130, 113, 618, 7647, 4141, -1000, - 162, 471, 520, -1000, 544, -1000, -1000, 374, -40, -1000, - 5962, 5908, 2957, 7339, 3987, -1000, -1000, -1000, 5851, -73, - 5600, -1000, 6856, 618, 161, 112, -1000, -1000, -1000, 41, - -1000, -1000, 607, -1000, -1000, -1000, -1000, 5600, -1000, 7076, - -1000, -1000, 5794, -1000, -1000, 40, 5737, -1000, -1000, 520, - 111, 5600, -1000, -1000, -1000, 108, 5050, 6856, -1000, -1000, - 662, 454, -31, -1000, -1000, 662, 644, -1000, 294, -1000, - -1000, -1000, 5683, 292, 6856, -1000, 291, 289, 471, 7130, - 288, -1000, 107, 515, 618, 159, 4940, -1000, -1000, -1000, - 591, 471, 106, -23, -1000, 2, -1000, -1000, 677, -1000, - -1000, -1000, -1000, 367, -40, 1421, -1000, 544, 4449, 178, - 287, -1000, -1000, -1000, 5600, 7076, -1000, 4940, -73, -1000, - -1000, 5629, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -38, -1000, 662, 326, 644, -1000, -31, -1000, 2801, 286, - 5600, 395, -1000, 696, -1000, 104, -1000, 3679, 7647, -1000, - 4940, 39, 2645, -1000, 158, 366, 102, 557, 471, 459, - -1000, -1000, 365, -1000, -1000, -1000, 627, 633, 544, 546, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1265, -1000, - -1000, -1000, -1000, 3425, 7076, 99, 325, 362, 324, 662, - -38, -1000, -1000, 323, 276, -1000, 98, -1000, 5600, 155, - 360, 270, 659, 557, -1000, -1000, -1000, 96, -1000, 92, - -1000, 266, 544, -1000, 97, 97, 151, -1000, 630, -1000, - -1000, 1109, -35, -1000, -72, 7489, 0, -48, -1000, -1000, - 3425, -73, -1000, -1000, -1000, -1000, 322, -1000, -1000, 3833, - 361, -1000, -1000, -1000, -1000, -1000, 265, 97, 2489, 3679, - -1000, -1000, 79, -1000, 2333, 347, 471, 338, 140, -74, - 953, -1000, -1000, 627, -1000, 5600, -36, -1000, -75, 7489, - -1000, -1000, 4728, 730, -1000, -1000, -1000, -1000, -1000, 3425, - -1000, 337, 260, -1000, 86, 544, -1000, -1000, -1000, -1000, - -41, -1000, -1000, 613, 5600, -1000, -1000, 6856, -1000, 7489, - 5600, -1000, -1000, 4603, -1000, 253, 237, 547, 580, 494, - -1000, 462, -1000, -1000, 2177, 3425, -1000, -1000, 336, -1000, - 2021, 1865, -1000, 140, -1000, 6856, -1000, -1000, 6856, 133, - -1000, -1000, -1000, -1000, 544, 7589, 7489, 236, 1709, -1000, - -1000, -1000, -1000, -1000, 471, -40, -1000, -1000, 7489, -1000, - -1000, -1000, 1553, 84, -1000, -1000, 97, 261, -1000, -1000, - -1000, 1397, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 203, -1000, -1000, + -1000, -1000, 183, 5524, 5524, 104, 183, 591, -12, -1000, + 6802, 6060, 6005, -1000, -1000, -1000, 285, 5947, -1000, -13, + -1000, 6802, 5524, 163, -1000, -1000, 935, -1000, -1000, -1000, + 502, 550, -1000, 737, 539, 689, -1000, 501, -1000, 6802, + 158, 4186, 5524, 5524, 5524, 208, -1000, -1000, 6802, -1000, + 5524, 7080, 155, 688, 7606, 4030, -1000, 192, 285, 569, + -1000, 587, -1000, -1000, 400, -40, -1000, 5892, 5837, 2831, + 7294, 3874, -1000, -1000, -1000, 5779, -66, 5524, -1000, 6802, + 688, 182, 151, -1000, -1000, -1000, 50, -1000, -1000, 709, + -1000, -1000, -1000, -1000, 5524, -1000, 7025, -1000, -1000, 5721, + -1000, -1000, 47, 5663, -1000, -1000, 569, 144, 5524, -1000, + -1000, 142, -16, -1000, 35, -1000, -1000, 552, -1000, -1000, + -1000, -1000, 141, 4954, 6802, -1000, -1000, 737, 499, -34, + -1000, -1000, 737, 689, -1000, 314, -1000, -1000, -1000, 5608, + 313, 6802, -1000, 312, 311, 7080, 307, -1000, 139, 562, + 688, 177, 4726, -1000, -1000, -1000, 620, 285, 138, -1000, + 396, -40, 1433, -1000, 587, 4342, 272, 303, -1000, -1000, + -1000, 5524, 7025, -1000, 4726, -66, -1000, -1000, 5553, -1000, + -1000, -1000, -1000, -1000, -1000, 269, 285, 475, -1000, -1000, + -1000, -1000, -35, -1000, 737, 362, 689, -1000, -34, -1000, + 2673, 302, 5524, 411, -1000, 793, -1000, -1000, 3562, 7606, + -1000, 4726, 40, 2515, -1000, 169, 395, 121, 611, 379, + -1000, -1000, -1000, 285, 647, 587, 612, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1275, -1000, -1000, -1000, -1000, + 3305, 7025, 119, 350, 378, -1000, 285, -1000, 729, -1000, + 349, 737, -35, -1000, -1000, 347, 301, -1000, 113, -1000, + 5524, 174, 401, 300, 775, -1000, -1000, -1000, 111, -1000, + 108, -1000, 299, 587, -1000, 269, 269, 133, -1000, 1117, + 713, 7446, 32, -31, -1000, -1000, 3305, -66, -1000, -1000, + 560, -1000, -67, -1000, -1000, 286, -1000, -1000, 3718, 335, + -1000, -1000, -1000, -1000, -1000, 292, 2357, 3562, -1000, -1000, + 89, -1000, 2199, 375, 374, 214, 959, -1000, -36, -1000, + -70, -37, -1000, -73, 7446, -1000, -1000, 4625, 538, 5524, + 5524, -1000, -1000, -1000, -1000, -1000, 3305, -1000, 290, -1000, + 106, 587, -1000, -1000, -1000, -43, -1000, -1000, 725, -1000, + -1000, 713, -1000, 5524, -1000, 7446, 5524, -1000, -1000, 4498, + -1000, 284, 217, 608, 680, 497, -1000, 477, -1000, -1000, + 7025, 6802, 2041, 3305, -1000, 366, -1000, 1883, 1725, -1000, + 214, -1000, -1000, 6802, -1000, 6802, 105, -1000, -1000, -1000, + -1000, 587, 7547, 7446, 185, -1000, -1000, -1000, -1000, -1000, + -1000, 285, -40, -1000, -1000, 7446, -1000, -1000, 1567, 103, + -1000, -1000, 269, 283, -1000, -1000, -1000, 1409, -1000, } var yyPgo = [...]int{ - 0, 897, 896, 51, 9, 895, 3, 29, 16, 894, - 11, 31, 79, 78, 49, 45, 893, 21, 892, 73, - 19, 55, 891, 0, 80, 890, 889, 38, 141, 25, - 887, 36, 886, 56, 62, 883, 10, 880, 879, 872, - 868, 13, 46, 866, 858, 100, 84, 199, 856, 855, - 853, 5, 852, 83, 40, 845, 138, 43, 840, 837, - 835, 825, 823, 119, 822, 819, 818, 817, 12, 815, - 814, 44, 42, 32, 2, 15, 629, 41, 74, 812, - 809, 807, 14, 806, 803, 47, 39, 802, 18, 8, - 686, 20, 536, 800, 121, 798, 797, 795, 71, 791, - 33, 789, 787, 30, 37, 786, 784, 28, 783, 776, - 545, 773, 768, 767, 26, 765, 63, 1, 4, 763, - 17, 761, 760, 755, 7, 745, 6, 742, + 0, 931, 929, 14, 8, 928, 4, 29, 13, 927, + 11, 44, 78, 71, 52, 48, 926, 26, 924, 83, + 21, 82, 916, 0, 84, 915, 914, 42, 190, 32, + 19, 38, 913, 79, 73, 912, 5, 911, 910, 909, + 908, 15, 62, 905, 904, 100, 87, 274, 903, 902, + 901, 6, 900, 86, 41, 899, 56, 49, 898, 897, + 896, 895, 894, 99, 893, 892, 890, 883, 10, 882, + 881, 46, 39, 40, 2, 16, 705, 43, 85, 880, + 879, 878, 12, 876, 875, 555, 50, 37, 871, 870, + 9, 762, 20, 553, 868, 18, 867, 864, 862, 88, + 860, 36, 858, 855, 25, 33, 854, 853, 45, 848, + 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, + 832, 17, 831, 821, 803, 7, 767, 28, 752, } var yyR1 = [...]int{ - 0, 127, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 128, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 5, 5, 5, 5, 5, 5, 6, 6, 116, 116, - 94, 94, 10, 10, 10, 9, 9, 9, 9, 9, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 5, 5, 5, 6, 6, 117, + 117, 95, 95, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 90, 90, 16, 16, 18, 18, 7, 7, 104, 104, - 103, 103, 110, 110, 17, 17, 20, 20, 19, 19, - 98, 98, 117, 117, 22, 22, 22, 22, 22, 22, - 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 9, 91, 91, 16, 16, 18, 18, 7, 7, 105, + 105, 104, 104, 111, 111, 17, 17, 20, 20, 19, + 19, 99, 99, 118, 118, 22, 22, 22, 22, 22, + 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 96, 96, 95, 95, 26, - 26, 109, 109, 27, 12, 1, 1, 2, 2, 13, - 13, 125, 125, 76, 76, 14, 15, 85, 85, 87, - 87, 86, 86, 91, 91, 91, 91, 83, 83, 82, - 82, 25, 25, 80, 80, 80, 80, 107, 107, 107, - 8, 8, 84, 84, 67, 67, 65, 65, 69, 69, - 66, 66, 118, 118, 119, 119, 29, 29, 30, 30, - 75, 75, 73, 73, 73, 74, 74, 77, 77, 115, - 115, 31, 31, 102, 102, 33, 106, 106, 34, 34, - 120, 120, 35, 35, 35, 35, 124, 124, 79, 79, - 79, 108, 108, 36, 36, 37, 38, 38, 38, 38, - 40, 40, 39, 81, 81, 122, 122, 121, 121, 123, - 123, 89, 89, 89, 89, 89, 89, 105, 105, 41, - 41, 97, 97, 68, 21, 99, 99, 42, 100, 100, - 101, 101, 44, 43, 43, 32, 32, 32, 32, 32, + 11, 11, 11, 11, 11, 11, 97, 97, 96, 96, + 26, 26, 110, 110, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 76, 76, 14, 15, 86, 86, + 88, 88, 87, 87, 92, 92, 92, 92, 83, 83, + 82, 82, 25, 25, 80, 80, 80, 80, 108, 108, + 108, 8, 8, 84, 84, 67, 67, 65, 65, 69, + 69, 66, 66, 119, 119, 120, 120, 29, 29, 30, + 30, 75, 75, 73, 73, 73, 74, 74, 77, 77, + 116, 116, 31, 31, 103, 103, 33, 107, 107, 34, + 34, 121, 121, 35, 35, 35, 35, 125, 125, 79, + 79, 79, 109, 109, 36, 36, 37, 38, 38, 38, + 38, 40, 40, 39, 81, 81, 123, 123, 122, 122, + 124, 124, 90, 90, 90, 90, 90, 90, 106, 106, + 41, 41, 98, 98, 68, 21, 100, 100, 42, 101, + 101, 102, 102, 44, 43, 43, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1479,18 +1480,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 126, 3, 3, 88, 88, 111, 111, 51, 51, - 52, 52, 52, 52, 45, 45, 46, 46, 49, 49, - 93, 93, 93, 78, 78, 56, 56, 56, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 57, 57, 57, 23, 23, 24, - 24, 55, 58, 58, 58, 59, 59, 59, 60, 60, - 60, 60, 60, 60, 28, 28, 28, 47, 47, 47, - 61, 61, 62, 62, 62, 62, 62, 62, 53, 53, - 53, 54, 54, 54, 114, 71, 71, 113, 113, 70, - 70, 70, 70, 70, 70, 92, 92, 92, 92, 63, - 63, 63, 63, 63, 63, 63, 64, 64, 64, 64, - 48, 48, 48, 48, 48, 48, 48, 112, 112, 72, + 32, 32, 32, 85, 85, 127, 3, 3, 89, 89, + 112, 112, 51, 51, 52, 52, 52, 52, 45, 45, + 46, 46, 49, 49, 94, 94, 94, 78, 78, 56, + 56, 56, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 57, 57, + 57, 23, 23, 24, 24, 55, 58, 58, 58, 59, + 59, 59, 60, 60, 60, 60, 60, 60, 28, 28, + 28, 47, 47, 47, 61, 61, 62, 62, 62, 62, + 62, 62, 53, 53, 53, 54, 54, 54, 115, 71, + 71, 114, 114, 70, 70, 70, 70, 70, 70, 70, + 93, 93, 93, 93, 63, 63, 63, 63, 63, 63, + 63, 64, 64, 64, 64, 48, 48, 48, 48, 48, + 48, 48, 113, 113, 72, } var yyR2 = [...]int{ @@ -1501,258 +1503,259 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 3, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 4, 3, 5, 4, 3, 4, 3, 4, 3, - 1, 1, 6, 7, 6, 7, 0, 1, 3, 1, - 3, 1, 3, 1, 1, 2, 1, 3, 1, 2, - 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 4, 3, 1, 1, 5, 7, 9, 5, 3, 3, - 3, 3, 3, 3, 1, 2, 6, 7, 9, 5, - 1, 6, 3, 3, 2, 0, 9, 1, 3, 0, - 4, 1, 3, 1, 11, 0, 1, 0, 1, 9, - 8, 1, 2, 1, 1, 6, 7, 0, 2, 0, - 2, 0, 2, 1, 2, 4, 3, 1, 4, 1, - 4, 1, 4, 3, 4, 4, 5, 0, 5, 4, - 1, 1, 1, 4, 5, 6, 1, 3, 6, 7, - 3, 6, 1, 0, 1, 3, 4, 6, 0, 1, - 1, 2, 1, 1, 1, 0, 2, 2, 4, 1, - 3, 1, 2, 3, 1, 1, 3, 1, 1, 3, - 2, 0, 3, 4, 3, 10, 1, 3, 1, 2, - 3, 1, 2, 2, 2, 3, 3, 3, 4, 3, - 1, 1, 3, 1, 3, 1, 1, 0, 1, 1, - 2, 1, 1, 1, 1, 1, 1, 3, 1, 2, - 4, 3, 1, 4, 4, 3, 1, 1, 0, 1, - 3, 1, 8, 3, 2, 6, 5, 3, 4, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 0, 1, 3, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 4, 3, 5, 4, 3, 4, 3, 4, + 3, 1, 1, 6, 7, 6, 7, 0, 1, 3, + 1, 3, 1, 3, 1, 1, 2, 1, 3, 1, + 2, 3, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 4, 3, 1, 1, 5, 7, 9, 5, 3, + 3, 3, 3, 3, 3, 1, 2, 6, 7, 9, + 5, 1, 6, 3, 3, 2, 0, 9, 1, 3, + 0, 4, 1, 3, 1, 11, 0, 1, 0, 1, + 9, 8, 1, 2, 1, 1, 6, 7, 0, 2, + 0, 2, 0, 2, 1, 2, 4, 3, 1, 4, + 1, 4, 1, 4, 3, 4, 4, 5, 0, 5, + 4, 1, 1, 1, 4, 5, 6, 1, 3, 6, + 7, 3, 6, 1, 0, 1, 3, 4, 6, 0, + 1, 1, 2, 1, 1, 1, 0, 2, 2, 4, + 1, 3, 1, 2, 3, 1, 1, 3, 1, 1, + 3, 2, 0, 4, 4, 3, 10, 1, 3, 1, + 2, 3, 1, 2, 2, 2, 3, 3, 3, 4, + 3, 1, 1, 3, 1, 3, 1, 1, 0, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 3, 1, + 2, 4, 3, 1, 4, 4, 3, 1, 1, 0, + 1, 3, 1, 8, 3, 2, 6, 5, 3, 4, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, - 4, 3, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 3, 2, 1, 2, 4, 2, 11, - 12, 0, 0, 1, 0, 4, 3, 1, 1, 2, - 2, 4, 4, 2, 1, 1, 1, 1, 0, 3, - 0, 1, 1, 0, 1, 4, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, - 3, 3, 1, 1, 1, 3, 3, 1, 1, 0, - 1, 1, 1, 3, 1, 1, 3, 1, 1, 4, - 4, 4, 4, 1, 1, 1, 3, 1, 4, 2, - 3, 3, 1, 4, 4, 3, 3, 3, 1, 3, - 1, 1, 3, 1, 1, 0, 1, 3, 1, 3, - 1, 4, 2, 6, 4, 2, 2, 1, 2, 1, - 4, 3, 3, 3, 6, 3, 1, 1, 2, 1, - 5, 4, 2, 2, 4, 2, 2, 1, 3, 1, + 1, 5, 4, 3, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, + 2, 1, 2, 11, 9, 0, 0, 1, 0, 4, + 3, 1, 1, 2, 2, 4, 4, 2, 1, 1, + 1, 1, 0, 3, 0, 1, 1, 0, 1, 4, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 2, 3, 3, 1, 1, 1, 3, + 3, 1, 1, 0, 1, 1, 1, 3, 1, 1, + 3, 1, 1, 4, 4, 4, 4, 1, 1, 1, + 3, 1, 4, 2, 3, 3, 1, 4, 4, 3, + 3, 3, 1, 3, 1, 1, 3, 1, 1, 0, + 1, 3, 1, 3, 1, 4, 2, 2, 6, 4, + 2, 2, 1, 2, 1, 4, 3, 3, 3, 6, + 3, 1, 1, 2, 1, 5, 4, 2, 2, 4, + 2, 2, 1, 3, 1, } var yyChk = [...]int{ - -1000, -127, -116, -9, 2, -11, -12, -13, -14, -15, - 51, 79, 44, 38, 142, -65, -66, 21, 20, 23, - 30, 34, 35, 39, 46, 98, 19, 14, -23, 48, - 25, 27, 144, 40, 43, 36, 10, 37, -125, 52, - 53, 54, -67, -69, -28, -32, -76, 7, -60, -61, - -58, 59, 148, 92, 104, 105, 153, 152, 154, 155, - 146, -43, -48, 107, 108, 109, 110, 111, 112, 113, - 6, 156, -50, 141, 96, 97, 106, 99, 100, -47, - -57, -52, -45, -55, -56, 91, 49, 50, 4, 5, - 84, 85, 86, 8, 9, 66, 67, 81, 63, 64, - 65, 80, 62, 74, 140, 12, 157, -10, -59, 60, - 18, -94, 82, 146, 82, -94, 142, 10, -18, -90, - -110, -94, 82, 37, 38, -19, -20, -98, -21, 10, - -117, 146, -11, 37, 79, 146, 146, -24, -23, 98, - -24, -24, -102, -33, -47, -106, 37, -34, 12, -99, - -42, -23, 144, 129, 130, 87, 89, 88, 159, 151, - 161, 167, 153, 152, 162, 131, 163, 164, 132, 133, - 134, 135, 136, 137, 165, 138, 166, 139, 115, 90, - 150, 114, 146, 146, 146, 142, -23, 10, 145, -3, - 151, 52, -76, 10, 10, 10, 93, 94, 93, 95, - 94, 160, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 104, 105, 146, 148, 142, 57, - 146, -114, -113, -71, -70, -23, 151, 59, -23, -28, - -57, 146, -56, 98, 148, -28, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -49, 146, - -23, -93, 17, -92, -63, 12, 76, 77, -23, -23, - -23, 148, 78, 78, -46, -44, -45, -62, 52, -10, - -47, 146, 146, -23, -23, 146, -23, -23, 17, 75, - -92, -92, 17, 142, -47, -77, 146, -77, 146, 82, - -94, 147, -94, 144, 142, -116, 144, -16, -110, -94, - 82, 144, 158, 82, 29, -94, -20, 144, 158, 160, - -22, 143, 2, -11, -12, -13, -14, -15, 51, -23, - 21, -3, -100, -101, -23, -23, 144, 144, 144, 144, - 158, 144, 158, -3, 160, 144, 158, -23, -23, -23, + -1000, -128, -117, -9, 2, -11, -12, -13, -14, -15, + 52, 80, 45, 39, 144, -65, -66, 21, 20, 23, + 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, + 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, + 54, 55, -67, -69, -28, -32, -76, 7, -60, -61, + -58, 60, 150, 93, 105, 106, 155, 154, 156, 157, + 148, -43, -48, 108, 109, 110, 111, 112, 113, 114, + 6, 158, -50, 143, 97, 98, 107, -85, 100, 101, + -47, -57, -52, -45, -55, -56, 92, 50, 51, 4, + 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, + 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, + -59, 61, 18, -95, 83, 148, 83, -95, 144, 10, + -18, -91, -111, -95, 83, 37, 39, -19, -20, -99, + -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, + -23, 99, -24, -24, -103, -33, -47, -107, -85, -34, + 12, -100, -42, -23, 146, 131, 132, 88, 90, 89, + 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, + 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, + 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, + 147, -3, 153, 53, -76, 10, 10, 10, 94, 95, + 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, + 150, 144, 58, 148, -115, -114, -71, -70, -23, 153, + 84, 60, -23, -28, -57, 148, -56, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, + -23, -23, -49, 148, -23, -94, 17, -93, -63, 12, + 77, 78, -23, -23, -23, 150, 79, 79, -46, -44, + -45, -62, 53, -10, -47, 148, 148, -23, -23, 148, + -23, -23, 17, 76, -93, -93, 17, -3, 144, -47, + -77, 148, -77, 148, 83, -95, 149, -95, 146, 144, + -117, 146, -16, -111, -95, 83, 146, 160, 83, 29, + -95, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -101, -102, -23, + -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, + 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -46, -23, 145, -23, -109, -27, -28, - -23, -98, -117, 144, 144, 10, -126, 10, -85, 55, - -126, -87, 55, 146, -11, 146, 144, 145, -23, 151, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -24, -23, -54, 10, 142, -47, -114, - 149, 158, 58, -28, 146, -23, -114, 147, -24, 141, - -63, -63, 17, 148, 57, -23, 11, -28, 58, -24, - -53, -6, -47, 142, 10, -5, -4, 98, 99, 100, - 101, 102, 103, 4, 5, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 6, 7, 93, 94, 95, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 35, 36, 37, 38, 39, 96, 97, 59, 30, - 31, 32, 33, 34, 60, 61, 55, 56, 79, 53, - 54, 52, 62, 63, 65, 64, 66, 67, 81, 80, - -53, -6, -47, -78, -77, 78, 148, 142, 57, 78, - -78, -112, -72, -23, -23, -23, 75, 75, 140, -23, - 147, -115, -31, -23, 83, -114, 10, 144, -116, 143, - 144, 144, 82, -94, -19, 82, -94, 142, 10, 82, - -21, -23, 146, 147, 146, 144, 158, 147, -33, -34, - -126, -23, -42, 145, -23, -7, 158, 29, 147, 143, - -126, 146, -85, -86, 56, -10, 142, -126, -124, -10, - -23, -23, -117, -23, 147, 149, 143, -77, -23, 147, - 160, -71, -23, 151, 59, -114, 147, 149, 147, -64, - 10, 13, 152, 12, 10, 143, 143, 148, 143, -23, - 149, -77, -23, -77, -47, -24, -23, -54, -47, -85, - -7, 158, 147, 147, 143, -7, 158, -23, 147, 143, - 142, 82, -104, -17, -20, -90, 142, -126, 147, -84, - -11, 145, -23, -100, -23, -80, 142, 145, 146, -23, - 147, -27, -91, -28, 151, 59, 148, -25, -11, 145, - -96, 146, -118, -119, -29, -30, -75, -73, 150, 60, - 61, -10, -86, -126, -124, -120, 142, 158, 147, 147, - 95, -11, 145, 143, 160, -23, -28, 146, 147, 149, - 13, -23, 143, 149, 143, -86, 147, -72, 147, -31, - -103, -20, 142, -7, 158, -20, -104, 144, -117, 147, - 144, -107, 144, -107, 144, -118, 144, 147, 58, -28, - 146, -114, -117, -26, 41, 42, -118, 147, 158, -1, - 151, -73, -126, 142, 143, -35, -122, -121, 44, -123, - 47, -89, 103, 102, 101, 98, 99, 100, -120, -10, - -11, 145, 144, -117, -23, -114, 149, -126, -7, 158, - -103, 143, -17, -7, 22, 144, -100, 143, 32, 33, - -107, 31, -107, 147, -82, -11, 145, -91, -28, -114, - 149, 28, 146, 142, 147, -88, 44, -29, -2, 83, - 142, -120, -105, -41, 12, 38, 37, -124, -89, 143, - -117, 147, 143, 142, 143, -20, -7, 143, 144, 147, - -23, -8, 145, 144, 143, 144, 31, -88, -117, 147, - 147, 144, -95, -10, -117, -74, 145, -74, 146, 12, - -120, 143, 144, 158, -126, 160, -97, -68, -6, -3, - -79, 144, 142, -120, 143, -83, -11, 145, -8, -117, - 144, -74, 26, -82, 12, 159, 143, 142, -75, 142, - -111, -51, 12, 151, 160, 143, -41, -23, 144, 158, - 160, -6, 143, -108, -36, -37, -38, -39, -40, -10, - -6, 79, 10, 143, -117, -117, 142, 144, 147, -10, - -117, -117, 147, 158, 12, -23, -126, -68, -23, -126, - 143, -36, 144, 144, 45, 29, 78, 24, -117, 142, - 143, 143, -51, -126, 146, -124, 10, -4, -89, -6, - 144, 143, -117, -118, -6, 143, 147, -74, -81, 144, - 142, -117, 143, + -23, -23, -23, -23, -23, -23, -23, -46, -23, 147, + -23, -110, -27, -28, -23, -99, -118, 146, 146, 10, + -127, 10, -86, 56, -127, -88, 56, 148, -11, 148, + 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, + -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, + -54, 10, 144, -47, -115, 151, 160, 59, -28, -23, + 148, -23, -115, 149, -24, 143, -63, -63, 17, 150, + 58, -23, 11, -28, 59, -24, -53, -6, -47, 144, + 10, -5, -4, 99, 100, 101, 102, 103, 104, 4, + 5, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 6, 7, 94, 95, 96, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 35, 36, 37, + 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, + 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, + 66, 65, 67, 68, 82, 81, 38, -53, -6, -47, + -78, -77, 79, 150, 144, 58, 79, -78, -113, -72, + -23, -23, -23, 76, 76, 142, 148, -23, 149, -116, + -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, + 83, -95, -19, 83, -95, 144, 10, 83, -21, -23, + 148, 149, 148, 146, 160, 149, -33, -34, -23, -42, + 147, -23, -7, 160, 29, 149, 145, -127, 148, -86, + -87, 57, -10, 144, -127, -125, -10, -23, -23, -118, + -23, 149, 151, 145, -77, -23, 149, 162, -71, -23, + 153, 60, -115, 149, 151, 149, -64, 10, 13, 154, + 12, 10, 145, 145, 150, 145, -23, 151, -77, -23, + -77, -47, -24, -23, -54, -47, -86, -7, 160, 149, + 149, -119, -120, -29, -30, -75, -73, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -105, + -17, -20, -91, 144, -127, 149, -84, -11, 147, -23, + -101, -23, -80, 144, 147, -23, 149, -27, -92, -28, + 153, 60, 150, -25, -11, 147, -97, 148, -119, -87, + -127, -125, -121, 144, 160, 149, 149, 96, -11, 147, + 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, + 151, 145, -87, 149, -72, 149, 160, -1, 153, -73, + 149, -31, -104, -20, 144, -7, 160, -20, -105, 146, + -118, 149, 146, -108, 146, -108, 146, 146, 149, 59, + -28, 148, -115, -118, -26, 42, 43, -119, 149, -127, + 144, 145, -35, -123, -122, 45, -124, 48, -90, 104, + 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, + -118, -23, -115, 151, -127, -74, 147, -29, -2, 84, + -7, 160, -104, 145, -17, -7, 22, 146, -101, 145, + 32, 33, -108, 31, -108, -82, -11, 147, -92, -28, + -115, 151, 28, 148, 144, 149, -89, 45, 144, -121, + -30, 39, 37, -125, -90, 145, -118, 149, 145, 144, + -127, -75, 12, 145, -20, -7, 145, 146, 149, -23, + -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, + -96, -10, -118, -74, -74, 148, -121, 145, -106, -41, + 12, -98, -68, -6, -3, -79, 146, 144, -121, 59, + 162, 145, -83, -11, 147, -8, -118, 146, 26, -82, + 12, 161, 145, 144, 144, -112, -51, 12, 153, 145, + 146, 160, -127, 162, 146, 160, 162, -6, 145, -109, + -36, -37, -38, -39, -40, -10, -6, 80, 10, 145, + -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, + 160, 12, -41, -23, -68, -23, -127, 145, -36, 146, + 146, 46, 29, 79, 24, 144, 145, 145, -51, -127, + -127, 148, -125, 10, -4, -90, -6, 146, -118, -119, + -6, 145, 149, -74, -81, 146, 144, -118, 145, } var yyDef = [...]int{ - 79, -2, -2, 78, 85, 86, 87, 88, 89, 90, - 0, 0, 0, 0, 123, 132, 133, 0, 0, 0, - 0, 419, 419, 419, 0, 384, 0, 144, 0, 0, - 0, 0, 150, 0, 0, 0, 80, 372, 0, 0, - 0, 0, 206, 0, -2, 418, 171, 0, -2, 435, - 421, 0, 455, 0, 0, 0, 0, 0, 0, 0, - 0, 348, 352, 0, 0, 0, 0, 0, 0, 0, - 388, 0, 362, 390, 0, 365, 0, 173, 174, 428, - 413, 433, 0, 0, -2, 0, 0, 0, 0, 0, - 0, 0, 0, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 0, 0, 437, 0, -2, 0, 0, - 397, 82, 0, 0, 0, 0, 79, 80, 0, 0, - 0, 116, 0, 100, 101, 113, 118, 0, 121, 0, - 0, 0, 0, 372, 0, 288, 0, 0, 420, 384, - 0, 0, 0, 234, 235, 0, 372, 237, 238, 0, - 286, 287, 145, 0, 0, 0, 0, 0, 0, 0, + 80, -2, -2, 79, 86, 87, 88, 89, 90, 91, + 0, 0, 0, 0, 124, 133, 134, 0, 0, 0, + 0, 423, 423, 423, 0, 388, 0, 145, 0, 0, + 0, 0, 151, 0, 0, 0, 81, 376, 0, 0, + 0, 0, 207, 0, -2, 422, 172, 0, -2, 439, + 425, 0, 459, 0, 0, 0, 0, 0, 0, 0, + 0, 350, 354, 0, 0, 0, 0, 0, 0, 0, + 392, 0, 364, 394, 0, 367, 0, 371, 174, 175, + 432, 417, 437, 0, 0, -2, 0, 0, 0, 0, + 0, 0, 0, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 0, 0, 376, 441, 0, -2, + 0, 0, 401, 83, 0, 0, 0, 0, 80, 81, + 0, 0, 0, 117, 0, 101, 102, 114, 119, 0, + 122, 0, 0, 0, 0, 376, 0, 289, 0, 0, + 424, 388, 0, 0, 0, 235, 236, 0, 372, 238, + 239, 0, 287, 288, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 123, 0, 0, 154, 371, - 373, 0, 172, 177, 371, 179, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, + 155, 375, 377, 0, 173, 178, 375, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 314, 0, 419, 0, 0, - 455, 0, 454, 458, 456, 460, 0, 0, 299, -2, - 0, 0, -2, 384, 455, -2, 333, 334, 335, 336, - 0, 353, 354, 355, 356, 357, 358, 359, 360, 419, - 361, 0, 391, 392, 467, 469, 0, 0, 364, 366, - 368, 419, 0, 0, 393, 294, 386, 387, 393, 385, - 442, 0, 0, 482, 483, 0, 485, 486, 0, 409, - 0, 0, 0, 0, 439, 380, 0, 383, 455, 0, - 84, 0, 83, 92, 79, 0, 95, 0, 0, 116, - 0, 97, 0, 0, 0, 116, 119, 99, 0, 0, - 122, 131, 124, 125, 126, 127, 128, 129, 0, 0, - 0, 371, 0, 289, 291, 0, 138, 139, 140, 141, - 0, 142, 0, 371, 0, 143, 0, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, -2, -2, -2, -2, -2, -2, - -2, -2, -2, 346, 0, 0, 351, 106, 161, -2, - 0, 0, 0, 152, 153, 371, 0, 177, 181, 0, - 0, 371, 0, 0, 207, 0, 210, 123, 297, 0, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 0, 0, 0, 436, 451, 0, 453, 0, - 396, 455, 0, -2, 455, 0, 0, -2, 0, 363, - 468, 465, 466, 0, 0, 0, 0, 422, 0, 0, - 0, -2, -2, 0, 76, 77, 69, 70, 71, 72, - 73, 74, 75, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 0, -2, -2, 293, 394, 0, 419, 0, 0, 0, - 177, 106, 487, 489, 0, 0, 408, 411, 410, 0, - 227, 106, 229, 231, 0, 0, 81, 91, 0, 94, - 96, 98, 0, 116, 112, 0, 116, 0, 117, 0, - 120, 371, 0, 0, 0, 288, 0, 0, 233, 236, - 0, 239, 285, 0, 350, 0, 107, 0, 0, 155, - 0, -2, 181, 371, 0, 178, 241, 0, 180, 246, - 0, 0, 0, 298, 0, 429, 431, 432, 0, 0, - 0, 457, 459, 0, 0, 0, -2, 396, 389, 0, - 476, 477, 0, 479, 471, 472, 473, 0, 475, 367, - 430, 381, 0, 382, 446, 0, 0, 445, 447, 181, - 0, 107, 481, 484, 438, 0, 107, 232, 395, 93, - 0, 0, 106, 109, 114, 0, 0, 284, 0, 134, - 202, 123, 0, 0, 290, 137, 197, 197, -2, 349, - 0, 162, 0, -2, 0, 0, 455, 149, 191, 123, - 159, -2, 0, 212, 214, 165, 219, 220, 0, 222, - 223, 224, 371, 0, 182, 267, 241, 0, 0, 0, - 0, 204, 123, 452, 0, 296, -2, 455, 464, 470, - 478, 0, 449, 443, 444, 371, 480, 488, 228, 230, - 106, 111, 0, 0, 107, 115, 106, 130, 0, 0, - 288, 0, 197, 0, 197, 0, 146, 0, 0, -2, - 455, 0, 0, 151, 0, 0, 0, 374, 218, 167, - 166, 221, 0, 241, 175, 240, 0, 0, 0, -2, - 266, 269, 271, 272, 273, 274, 275, 276, 267, 247, - 205, 123, 211, -2, 295, 0, 0, 0, 0, 107, - 106, 104, 108, 0, 0, 135, 0, 193, 0, 0, - 0, 0, 0, 374, 147, 189, 123, 0, -2, 0, - -2, 0, 0, 123, 225, 225, 0, 215, 0, 168, - 241, 267, 0, 278, 371, 0, 372, 0, 270, 176, - -2, 463, 474, 241, 102, 110, 0, 105, 203, 0, - 0, 123, 200, 201, 194, 195, 0, 225, 0, 0, - 185, 192, 0, 157, 0, 0, 0, 0, 0, 216, - 267, 170, 242, 0, 279, 0, 0, 282, 0, 0, - 244, 248, 0, 267, 103, 136, 187, 123, 123, -2, - 196, 0, 0, 148, 0, 0, 160, 123, 226, 123, - 0, 377, 378, 0, 0, 169, 277, 371, 243, 0, - 0, 371, 249, 0, 251, 0, 0, 261, 0, 0, - 260, 57, -2, 292, 0, -2, 123, 190, 0, 158, - 0, 0, 375, 0, 379, 217, 280, 281, 371, 0, - 250, 252, 253, 254, 0, 0, 0, 0, 0, 123, - 164, 369, 376, 283, -2, 255, 256, 257, 259, 262, - 188, 370, 0, 0, 258, 156, 225, 0, 245, 263, - 123, 0, 264, + 0, 0, 0, 0, 0, 0, 0, 314, 316, 0, + 423, 0, 0, 459, 0, 458, 462, 460, 464, 0, + 0, 0, 300, -2, 0, 0, -2, 388, 459, -2, + 335, 336, 337, 338, 0, 355, 356, 357, 358, 359, + 360, 361, 362, 423, 363, 0, 395, 396, 472, 474, + 0, 0, 366, 368, 370, 423, 0, 0, 397, 295, + 390, 391, 397, 389, 446, 0, 0, 487, 488, 0, + 490, 491, 0, 413, 0, 0, 0, 0, 0, 443, + 384, 0, 387, 459, 0, 85, 0, 84, 93, 80, + 0, 96, 0, 0, 117, 0, 98, 0, 0, 0, + 117, 120, 100, 0, 0, 123, 132, 125, 126, 127, + 128, 129, 130, 0, 0, 0, 375, 0, 290, 292, + 0, 139, 140, 141, 142, 0, 143, 0, 0, 144, + 0, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, -2, -2, + -2, -2, -2, -2, -2, -2, -2, 348, 0, 0, + 353, 107, 162, -2, 0, 0, 0, 153, 154, 375, + 0, 178, 182, 0, 0, 375, 0, 0, 208, 0, + 211, 124, 298, 0, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 0, 0, 0, + 440, 455, 0, 457, 0, 400, 459, 0, -2, 467, + 459, 0, 0, -2, 0, 365, 473, 470, 471, 0, + 0, 0, 0, 426, 0, 0, 0, -2, -2, 0, + 77, 78, 70, 71, 72, 73, 74, 75, 76, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 0, -2, -2, + 294, 398, 0, 423, 0, 0, 0, 178, 107, 492, + 494, 0, 0, 412, 415, 414, -2, 0, 228, 107, + 230, 232, 0, 0, 82, 92, 0, 95, 97, 99, + 0, 117, 113, 0, 117, 0, 118, 0, 121, 375, + 0, 0, 0, 289, 0, 0, 234, 237, 240, 286, + 0, 352, 0, 108, 0, 0, 156, 0, -2, 182, + 375, 0, 179, 242, 0, 181, 247, 0, 0, 0, + 299, 0, 433, 435, 436, 0, 0, 0, 461, 463, + 0, 0, 0, -2, 400, 393, 0, 481, 482, 0, + 484, 476, 477, 478, 0, 480, 369, 434, 385, 0, + 386, 450, 0, 0, 449, 451, 182, 0, 108, 486, + 489, 0, 213, 215, 166, 220, 221, 0, 223, 224, + 225, 442, 0, 108, 233, 399, 94, 0, 0, 107, + 110, 115, 0, 0, 285, 0, 135, 203, 124, 0, + 0, 291, 138, 198, 198, 351, 0, 163, 0, -2, + 0, 0, 459, 150, 192, 124, 160, -2, 0, 375, + 0, 183, 268, 242, 0, 0, 0, 0, 205, 124, + 456, 0, 297, -2, 459, 469, 475, 483, 0, 453, + 447, 448, 375, 485, 493, 226, 219, 168, 167, 222, + 229, 231, 107, 112, 0, 0, 108, 116, 107, 131, + 0, 0, 289, 0, 198, 0, 198, 147, 0, 0, + -2, 459, 0, 0, 152, 0, 0, 0, 378, 0, + 242, 176, 241, 219, 0, 0, -2, 267, 270, 272, + 273, 274, 275, 276, 277, 268, 248, 206, 124, 212, + -2, 296, 0, 0, 0, 375, 0, 216, 0, 169, + 0, 108, 107, 105, 109, 0, 0, 136, 0, 194, + 0, 0, 0, 0, 0, 148, 190, 124, 0, -2, + 0, -2, 0, 0, 124, 226, 226, 0, 242, 268, + 0, 0, 376, 0, 271, 177, -2, 468, 479, 242, + 0, 227, 217, 103, 111, 0, 106, 204, 0, 0, + 124, 201, 202, 195, 196, 0, 0, 0, 186, 193, + 0, 158, 0, 0, 0, 0, 268, 171, 0, 279, + 375, 0, 283, 0, 0, 245, 249, 0, 268, 0, + 0, 104, 137, 188, 124, 124, -2, 197, 0, 149, + 0, 0, 161, 124, 124, 0, 381, 382, 0, 170, + 243, 0, 280, 0, 244, 0, 0, 375, 250, 0, + 252, 0, 0, 262, 0, 0, 261, 57, -2, 293, + 374, 218, 0, -2, 191, 0, 159, 0, 0, 379, + 0, 383, 278, 375, 282, 375, 0, 251, 253, 254, + 255, 0, 0, 0, 0, 124, 165, 373, 380, 281, + 284, -2, 256, 257, 258, 260, 263, 189, 0, 0, + 259, 157, 226, 0, 246, 264, 124, 0, 265, } var yyTok1 = [...]int{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 154, 140, 3, 157, 164, 151, 3, - 146, 147, 162, 153, 158, 152, 167, 163, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 145, 144, - 165, 160, 166, 150, 156, 3, 3, 3, 3, 3, + 3, 3, 3, 156, 142, 3, 159, 166, 153, 3, + 148, 149, 164, 155, 160, 154, 169, 165, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 147, 146, + 167, 162, 168, 152, 158, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 148, 3, 149, 161, 3, 141, 3, 3, 3, + 3, 150, 3, 151, 163, 3, 143, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 142, 159, 143, 155, + 3, 3, 3, 144, 161, 145, 157, } var yyTok2 = [...]int{ @@ -1769,7 +1772,7 @@ var yyTok2 = [...]int{ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, } var yyTok3 = [...]int{ 0, @@ -2114,7 +2117,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:300 + //line php7/php7.y:303 { yylex.(*Parser).rootNode = node.NewRoot(yyDollar[1].list) @@ -2127,409 +2130,409 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:313 + //line php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:314 + //line php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:315 + //line php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:316 + //line php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:317 + //line php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:318 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:318 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:318 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:318 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:318 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:318 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:318 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:318 + //line php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:319 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:319 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:319 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:319 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:319 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:319 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:319 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:319 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:324 + //line php7/php7.y:322 { yyVAL.token = yyDollar[1].token } @@ -2541,49 +2544,55 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:327 + //line php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:327 + //line php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:327 + //line php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:327 + //line php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:327 + //line php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:332 + //line php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:336 + //line php7/php7.y:335 { yyVAL.token = yyDollar[1].token } case 78: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:339 + { + yyVAL.token = yyDollar[1].token + } + case 79: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:343 + //line php7/php7.y:346 { if inlineHtmlNode, ok := yyDollar[2].node.(*stmt.InlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2596,17 +2605,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 79: + case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:356 + //line php7/php7.y:359 { yyVAL.list = []node.Node{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 80: + case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:365 + //line php7/php7.y:368 { namePart := name.NewNamePart(yyDollar[1].token.Value) yyVAL.list = []node.Node{namePart} @@ -2619,9 +2628,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 81: + case 82: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:378 + //line php7/php7.y:381 { namePart := name.NewNamePart(yyDollar[3].token.Value) yyVAL.list = append(yyDollar[1].list, namePart) @@ -2635,9 +2644,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 82: + case 83: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:395 + //line php7/php7.y:398 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -2649,9 +2658,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 83: + case 84: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:407 + //line php7/php7.y:410 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -2664,9 +2673,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 84: + case 85: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:420 + //line php7/php7.y:423 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -2678,26 +2687,18 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 85: + case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:435 + //line php7/php7.y:438 { // error yyVAL.node = nil - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 86: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:442 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:448 + //line php7/php7.y:445 { yyVAL.node = yyDollar[1].node @@ -2705,7 +2706,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:454 + //line php7/php7.y:451 { yyVAL.node = yyDollar[1].node @@ -2713,7 +2714,7 @@ yydefault: } case 89: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:460 + //line php7/php7.y:457 { yyVAL.node = yyDollar[1].node @@ -2721,15 +2722,23 @@ yydefault: } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:466 + //line php7/php7.y:463 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 91: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:469 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 92: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:472 + //line php7/php7.y:475 { yyVAL.node = stmt.NewHaltCompiler() @@ -2745,9 +2754,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 92: + case 93: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:488 + //line php7/php7.y:491 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2764,9 +2773,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 93: + case 94: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:505 + //line php7/php7.y:508 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2783,9 +2792,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 94: + case 95: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:522 + //line php7/php7.y:525 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2799,9 +2808,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 95: + case 96: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:536 + //line php7/php7.y:539 { yyVAL.node = yyDollar[2].node @@ -2815,9 +2824,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 96: + case 97: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:550 + //line php7/php7.y:553 { yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) @@ -2831,9 +2840,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 97: + case 98: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:564 + //line php7/php7.y:567 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2847,9 +2856,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 98: + case 99: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:578 + //line php7/php7.y:581 { yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) @@ -2863,9 +2872,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 99: + case 100: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:592 + //line php7/php7.y:595 { yyVAL.node = stmt.NewConstList(yyDollar[2].list) @@ -2877,25 +2886,11 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 100: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:609 - { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 101: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:621 + //line php7/php7.y:612 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2908,8 +2903,22 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 102: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:624 + { + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 103: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:636 + //line php7/php7.y:639 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2930,9 +2939,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 103: + case 104: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:657 + //line php7/php7.y:660 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2954,9 +2963,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 104: + case 105: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:682 + //line php7/php7.y:685 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2977,9 +2986,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 105: + case 106: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:703 + //line php7/php7.y:706 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -3001,59 +3010,40 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 106: + case 107: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:728 + //line php7/php7.y:731 { yyVAL.token = nil } - case 107: + case 108: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:732 + //line php7/php7.y:735 { yyVAL.token = yyDollar[1].token } - case 108: + case 109: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:739 + //line php7/php7.y:742 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 109: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:748 - { - yyVAL.list = []node.Node{yyDollar[1].node} - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 110: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:757 + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:751 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) + yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 111: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:766 - { - yyVAL.list = []node.Node{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 112: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:775 + //line php7/php7.y:760 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3062,33 +3052,52 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 113: + case 112: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:784 + //line php7/php7.y:769 { yyVAL.list = []node.Node{yyDollar[1].node} + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 113: + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:778 + { + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:793 + //line php7/php7.y:787 + { + yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 115: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:796 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 115: + case 116: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:799 + //line php7/php7.y:802 { yyVAL.node = yyDollar[2].node.(*stmt.Use).SetUseType(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 116: + case 117: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:808 + //line php7/php7.y:811 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -3102,9 +3111,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 117: + case 118: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:822 + //line php7/php7.y:825 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -3122,9 +3131,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 118: + case 119: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:843 + //line php7/php7.y:846 { yyVAL.node = yyDollar[1].node @@ -3133,9 +3142,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 119: + case 120: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:852 + //line php7/php7.y:855 { yyVAL.node = yyDollar[2].node @@ -3148,9 +3157,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 120: + case 121: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:868 + //line php7/php7.y:871 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3159,17 +3168,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 121: + case 122: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:877 + //line php7/php7.y:880 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 122: + case 123: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:886 + //line php7/php7.y:889 { if inlineHtmlNode, ok := yyDollar[2].node.(*stmt.InlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3182,34 +3191,26 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 123: + case 124: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:899 + //line php7/php7.y:902 { yyVAL.list = []node.Node{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 124: + case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:908 + //line php7/php7.y:911 { // error yyVAL.node = nil - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 125: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:915 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:921 + //line php7/php7.y:918 { yyVAL.node = yyDollar[1].node @@ -3217,7 +3218,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:927 + //line php7/php7.y:924 { yyVAL.node = yyDollar[1].node @@ -3225,7 +3226,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:933 + //line php7/php7.y:930 { yyVAL.node = yyDollar[1].node @@ -3233,15 +3234,23 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:939 + //line php7/php7.y:936 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 130: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:942 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 131: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:945 + //line php7/php7.y:948 { yyVAL.node = stmt.NewHaltCompiler() @@ -3257,9 +3266,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 131: + case 132: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:963 + //line php7/php7.y:966 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3270,27 +3279,27 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 132: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:976 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 133: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:982 + //line php7/php7.y:979 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 134: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:985 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 135: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:988 + //line php7/php7.y:991 { switch n := yyDollar[5].node.(type) { case *stmt.While: @@ -3311,9 +3320,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 135: + case 136: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1009 + //line php7/php7.y:1012 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) @@ -3330,9 +3339,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 136: + case 137: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1026 + //line php7/php7.y:1029 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3359,9 +3368,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 137: + case 138: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1053 + //line php7/php7.y:1056 { switch n := yyDollar[5].node.(type) { case *stmt.Switch: @@ -3384,9 +3393,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 138: + case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1076 + //line php7/php7.y:1079 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3400,9 +3409,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 139: + case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1090 + //line php7/php7.y:1093 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3416,9 +3425,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 140: + case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1104 + //line php7/php7.y:1107 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3432,9 +3441,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 141: + case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1118 + //line php7/php7.y:1121 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3448,9 +3457,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 142: + case 143: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1132 + //line php7/php7.y:1135 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3464,9 +3473,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 143: + case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1146 + //line php7/php7.y:1149 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3481,9 +3490,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 144: + case 145: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1161 + //line php7/php7.y:1164 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3495,9 +3504,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 145: + case 146: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1173 + //line php7/php7.y:1176 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3511,9 +3520,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 146: + case 147: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1187 + //line php7/php7.y:1190 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3533,9 +3542,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 147: + case 148: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1207 + //line php7/php7.y:1210 { switch n := yyDollar[7].node.(type) { case *stmt.Foreach: @@ -3559,9 +3568,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 148: + case 149: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1232 + //line php7/php7.y:1235 { switch n := yyDollar[9].node.(type) { case *stmt.Foreach: @@ -3588,9 +3597,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 149: + case 150: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1259 + //line php7/php7.y:1262 { yyVAL.node = yyDollar[5].node yyVAL.node.(*stmt.Declare).Consts = yyDollar[3].list @@ -3605,9 +3614,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 150: + case 151: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1274 + //line php7/php7.y:1277 { yyVAL.node = stmt.NewNop() @@ -3620,9 +3629,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 151: + case 152: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1287 + //line php7/php7.y:1290 { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3639,9 +3648,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 152: + case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1304 + //line php7/php7.y:1307 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3655,9 +3664,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 153: + case 154: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1318 + //line php7/php7.y:1321 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3674,9 +3683,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 154: + case 155: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1335 + //line php7/php7.y:1338 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -3691,17 +3700,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 155: + case 156: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1352 + //line php7/php7.y:1355 { yyVAL.list = []node.Node{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 156: + case 157: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1358 + //line php7/php7.y:1361 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[5].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3724,17 +3733,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 157: + case 158: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1383 + //line php7/php7.y:1386 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 158: + case 159: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1389 + //line php7/php7.y:1392 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3743,17 +3752,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 159: + case 160: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1401 + //line php7/php7.y:1404 { yyVAL.node = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 160: + case 161: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1407 + //line php7/php7.y:1410 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3767,17 +3776,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 161: + case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1424 + //line php7/php7.y:1427 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 162: + case 163: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1430 + //line php7/php7.y:1433 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3786,17 +3795,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 163: + case 164: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1442 + //line php7/php7.y:1445 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 164: + case 165: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:1451 + //line php7/php7.y:1454 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list, yyDollar[4].str) @@ -3830,33 +3839,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 165: + case 166: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1487 + //line php7/php7.y:1490 { yyVAL.token = nil } - case 166: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1491 - { - yyVAL.token = yyDollar[1].token - } case 167: - yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1498 - { - yyVAL.token = nil - } - case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1502 + //line php7/php7.y:1494 { yyVAL.token = yyDollar[1].token } + case 168: + yyDollar = yyS[yypt-0 : yypt+1] + //line php7/php7.y:1501 + { + yyVAL.token = nil + } case 169: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:1505 + { + yyVAL.token = yyDollar[1].token + } + case 170: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1509 + //line php7/php7.y:1512 { name := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewClass(name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list, yyDollar[6].str) @@ -3874,9 +3883,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 170: + case 171: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1527 + //line php7/php7.y:1530 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewClass(name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -3893,39 +3902,25 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 171: + case 172: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1547 + //line php7/php7.y:1550 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 172: + case 173: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1553 + //line php7/php7.y:1556 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 173: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1562 - { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1574 + //line php7/php7.y:1565 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3938,8 +3933,22 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 175: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:1577 + { + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 176: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1589 + //line php7/php7.y:1592 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3956,9 +3965,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 176: + case 177: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1609 + //line php7/php7.y:1612 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[6].list, yyDollar[4].str) @@ -3975,17 +3984,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 177: + case 178: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1629 + //line php7/php7.y:1632 { yyVAL.ClassExtends = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 178: + case 179: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1635 + //line php7/php7.y:1638 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3997,17 +4006,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 179: + case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1650 + //line php7/php7.y:1653 { yyVAL.InterfaceExtends = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 180: + case 181: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1656 + //line php7/php7.y:1659 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -4019,17 +4028,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 181: + case 182: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1671 + //line php7/php7.y:1674 { yyVAL.ClassImplements = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 182: + case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1677 + //line php7/php7.y:1680 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -4041,17 +4050,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 183: + case 184: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1692 + //line php7/php7.y:1695 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 184: + case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1698 + //line php7/php7.y:1701 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -4063,9 +4072,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 185: + case 186: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1710 + //line php7/php7.y:1713 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -4079,9 +4088,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 186: + case 187: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1724 + //line php7/php7.y:1727 { yyVAL.node = expr.NewShortList(yyDollar[2].list) @@ -4094,9 +4103,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 187: + case 188: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1740 + //line php7/php7.y:1743 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -4105,9 +4114,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 188: + case 189: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1749 + //line php7/php7.y:1752 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4124,9 +4133,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 189: + case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1769 + //line php7/php7.y:1772 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4135,9 +4144,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 190: + case 191: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1778 + //line php7/php7.y:1781 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4154,9 +4163,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 191: + case 192: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1798 + //line php7/php7.y:1801 { yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) @@ -4165,9 +4174,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 192: + case 193: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1807 + //line php7/php7.y:1810 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewDeclare(nil, stmtList, true) @@ -4184,9 +4193,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 193: + case 194: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1827 + //line php7/php7.y:1830 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4201,9 +4210,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 194: + case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1842 + //line php7/php7.y:1845 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4219,9 +4228,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 195: + case 196: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1858 + //line php7/php7.y:1861 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4238,9 +4247,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 196: + case 197: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1875 + //line php7/php7.y:1878 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4259,17 +4268,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 197: + case 198: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1897 + //line php7/php7.y:1900 { yyVAL.list = []node.Node{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 198: + case 199: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1903 + //line php7/php7.y:1906 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4284,9 +4293,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 199: + case 200: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1918 + //line php7/php7.y:1921 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4301,21 +4310,21 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 200: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1936 - { - yyVAL.token = yyDollar[1].token - } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1940 + //line php7/php7.y:1939 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1947 + //line php7/php7.y:1943 + { + yyVAL.token = yyDollar[1].token + } + case 203: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:1950 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4324,9 +4333,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 203: + case 204: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1956 + //line php7/php7.y:1959 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4343,9 +4352,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 204: + case 205: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1976 + //line php7/php7.y:1979 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -4359,9 +4368,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 205: + case 206: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1990 + //line php7/php7.y:1993 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -4377,17 +4386,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 206: + case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2009 + //line php7/php7.y:2012 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 207: + case 208: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2015 + //line php7/php7.y:2018 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4401,9 +4410,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 208: + case 209: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2032 + //line php7/php7.y:2035 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4420,9 +4429,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 209: + case 210: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:2049 + //line php7/php7.y:2052 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4440,9 +4449,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 210: + case 211: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2070 + //line php7/php7.y:2073 { yyVAL.node = yyDollar[1].node @@ -4456,9 +4465,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 211: + case 212: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2084 + //line php7/php7.y:2087 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4478,33 +4487,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 212: + case 213: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2107 + //line php7/php7.y:2110 { yyVAL.list = yyDollar[1].list yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 213: + case 214: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2113 + //line php7/php7.y:2116 { yyVAL.list = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 214: + case 215: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2122 + //line php7/php7.y:2125 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 215: + case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2128 + //line php7/php7.y:2131 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4513,9 +4522,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 216: + case 217: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2140 + //line php7/php7.y:2143 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4563,9 +4572,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 217: + case 218: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2185 + //line php7/php7.y:2188 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4614,33 +4623,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 218: + case 219: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2234 + //line php7/php7.y:2237 { yyVAL.node = nil - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 219: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2240 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2249 + //line php7/php7.y:2243 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 221: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:2252 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2255 + //line php7/php7.y:2258 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4650,25 +4659,11 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 222: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2270 - { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2282 + //line php7/php7.y:2273 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4682,23 +4677,37 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2294 + //line php7/php7.y:2285 + { + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 225: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:2297 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 225: + case 226: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2303 + //line php7/php7.y:2306 { yyVAL.node = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 226: + case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2309 + //line php7/php7.y:2312 { yyVAL.node = yyDollar[2].node @@ -4707,9 +4716,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 227: + case 228: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2321 + //line php7/php7.y:2324 { yyVAL.node = node.NewArgumentList(nil) @@ -4722,9 +4731,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 228: + case 229: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2334 + //line php7/php7.y:2337 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4741,17 +4750,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 229: + case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2354 + //line php7/php7.y:2357 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 230: + case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2360 + //line php7/php7.y:2363 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4760,9 +4769,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 231: + case 232: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2372 + //line php7/php7.y:2375 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4774,9 +4783,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 232: + case 233: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2384 + //line php7/php7.y:2387 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4788,36 +4797,36 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 233: + case 234: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2399 + //line php7/php7.y:2402 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 234: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2408 - { - yyVAL.list = []node.Node{yyDollar[1].node} - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2417 + //line php7/php7.y:2411 + { + yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 236: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:2420 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 236: + case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2426 + //line php7/php7.y:2429 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4826,17 +4835,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 237: + case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2435 + //line php7/php7.y:2438 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 238: + case 239: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2444 + //line php7/php7.y:2447 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4853,9 +4862,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 239: + case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2461 + //line php7/php7.y:2464 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4873,41 +4882,41 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 240: + case 241: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2482 + //line php7/php7.y:2485 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 241: + case 242: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2488 + //line php7/php7.y:2491 { yyVAL.list = []node.Node{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 242: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2497 + case 243: + yyDollar = yyS[yypt-4 : yypt+1] + //line php7/php7.y:2500 { - yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) + yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].node, yyDollar[3].list) // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token)) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.PropertyList, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.PropertyList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 243: + case 244: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2511 + //line php7/php7.y:2514 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4926,9 +4935,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 244: + case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2530 + //line php7/php7.y:2533 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4940,9 +4949,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 245: + case 246: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:2542 + //line php7/php7.y:2545 { name := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewClassMethod(name, yyDollar[1].list, yyDollar[3].token != nil, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node, yyDollar[5].str) @@ -4977,17 +4986,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 246: + case 247: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2579 + //line php7/php7.y:2582 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 247: + case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2585 + //line php7/php7.y:2588 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4996,9 +5005,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 248: + case 249: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2597 + //line php7/php7.y:2600 { yyVAL.node = stmt.NewNop() @@ -5010,9 +5019,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 249: + case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2610 + //line php7/php7.y:2613 { yyVAL.node = stmt.NewTraitAdaptationList(nil) @@ -5024,9 +5033,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 250: + case 251: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2622 + //line php7/php7.y:2625 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -5038,25 +5047,25 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 251: + case 252: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2637 + //line php7/php7.y:2640 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 252: + case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2643 + //line php7/php7.y:2646 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 253: + case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2652 + //line php7/php7.y:2655 { yyVAL.node = yyDollar[1].node @@ -5066,9 +5075,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 254: + case 255: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2662 + //line php7/php7.y:2665 { yyVAL.node = yyDollar[1].node @@ -5078,9 +5087,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 255: + case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2675 + //line php7/php7.y:2678 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -5091,29 +5100,11 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ref, yyDollar[2].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 256: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2691 - { - alias := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) - - // save position - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ref, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2707 + //line php7/php7.y:2694 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -5130,8 +5121,26 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 258: + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:2710 + { + alias := node.NewIdentifier(yyDollar[3].token.Value) + yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) + + // save position + alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ref, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[3].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 259: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2723 + //line php7/php7.y:2726 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5147,9 +5156,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 259: + case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2739 + //line php7/php7.y:2742 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5162,9 +5171,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 260: + case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2755 + //line php7/php7.y:2758 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5178,17 +5187,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 261: + case 262: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2769 + //line php7/php7.y:2772 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 262: + case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2778 + //line php7/php7.y:2781 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5204,9 +5213,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 263: + case 264: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2797 + //line php7/php7.y:2800 { yyVAL.node = stmt.NewNop() @@ -5219,9 +5228,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 264: + case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2810 + //line php7/php7.y:2813 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5234,17 +5243,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 265: + case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2826 + //line php7/php7.y:2829 { yyVAL.list = yyDollar[1].list yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 266: + case 267: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2832 + //line php7/php7.y:2835 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5257,55 +5266,41 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 267: + case 268: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2848 + //line php7/php7.y:2851 { yyVAL.list = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 268: + case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2854 + //line php7/php7.y:2857 { yyVAL.list = yyDollar[1].list yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 269: + case 270: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2863 + //line php7/php7.y:2866 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 270: + case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2869 + //line php7/php7.y:2872 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 271: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2878 - { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2890 + //line php7/php7.y:2881 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5319,7 +5314,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2902 + //line php7/php7.y:2893 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5333,7 +5328,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2914 + //line php7/php7.y:2905 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5347,7 +5342,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2926 + //line php7/php7.y:2917 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5361,7 +5356,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2938 + //line php7/php7.y:2929 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5374,8 +5369,22 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 277: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:2941 + { + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2953 + //line php7/php7.y:2956 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5384,17 +5393,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 278: + case 279: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2962 + //line php7/php7.y:2965 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 279: + case 280: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2971 + //line php7/php7.y:2974 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5411,9 +5420,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 280: + case 281: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2988 + //line php7/php7.y:2991 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5431,9 +5440,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 281: + case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3009 + //line php7/php7.y:3012 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5442,34 +5451,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 282: + case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3018 + //line php7/php7.y:3021 { yyVAL.list = []node.Node{yyDollar[1].node} - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 283: - yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3027 - { - name := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 284: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3045 + //line php7/php7.y:3030 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5485,51 +5477,68 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 285: + yyDollar = yyS[yypt-4 : yypt+1] + //line php7/php7.y:3048 + { + name := node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) + + // save position + name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 286: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3063 + //line php7/php7.y:3066 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 286: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3072 - { - yyVAL.list = []node.Node{yyDollar[1].node} - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3081 + //line php7/php7.y:3075 + { + yyVAL.list = []node.Node{yyDollar[1].node} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 288: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:3084 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 288: + case 289: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:3090 + //line php7/php7.y:3093 { yyVAL.list = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 289: + case 290: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3096 + //line php7/php7.y:3099 { yyVAL.list = yyDollar[1].list yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 290: + case 291: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3105 + //line php7/php7.y:3108 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5538,17 +5547,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 291: + case 292: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3114 + //line php7/php7.y:3117 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 292: + case 293: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:3123 + //line php7/php7.y:3126 { if yyDollar[2].node != nil { yyVAL.node = stmt.NewClass(nil, nil, yyDollar[2].node.(*node.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) @@ -5566,9 +5575,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 293: + case 294: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3144 + //line php7/php7.y:3147 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -5583,9 +5592,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 294: + case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3159 + //line php7/php7.y:3162 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -5597,9 +5606,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 295: + case 296: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3174 + //line php7/php7.y:3177 { listNode := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(listNode, yyDollar[6].node) @@ -5616,9 +5625,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 296: + case 297: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3191 + //line php7/php7.y:3194 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -5634,9 +5643,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 297: + case 298: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3207 + //line php7/php7.y:3210 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5649,9 +5658,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 298: + case 299: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3220 + //line php7/php7.y:3223 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5665,9 +5674,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 299: + case 300: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3234 + //line php7/php7.y:3237 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5679,9 +5688,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 300: + case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3246 + //line php7/php7.y:3249 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5694,9 +5703,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 301: + case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3259 + //line php7/php7.y:3262 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5709,9 +5718,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 302: + case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3272 + //line php7/php7.y:3275 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5724,9 +5733,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 303: + case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3285 + //line php7/php7.y:3288 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5739,9 +5748,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 304: + case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3298 + //line php7/php7.y:3301 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5754,9 +5763,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 305: + case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3311 + //line php7/php7.y:3314 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5769,9 +5778,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 306: + case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3324 + //line php7/php7.y:3327 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5784,9 +5793,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 307: + case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3337 + //line php7/php7.y:3340 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5799,9 +5808,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 308: + case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3350 + //line php7/php7.y:3353 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5814,9 +5823,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 309: + case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3363 + //line php7/php7.y:3366 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5829,9 +5838,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 310: + case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3376 + //line php7/php7.y:3379 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5844,9 +5853,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 311: + case 312: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3389 + //line php7/php7.y:3392 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5859,9 +5868,24 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 312: + case 313: + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:3405 + { + yyVAL.node = assign.NewCoalesce(yyDollar[1].node, yyDollar[3].node) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3402 + //line php7/php7.y:3418 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5874,9 +5898,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 313: + case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3415 + //line php7/php7.y:3431 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5888,9 +5912,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 314: + case 316: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3427 + //line php7/php7.y:3443 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5903,9 +5927,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 315: + case 317: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3440 + //line php7/php7.y:3456 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5917,9 +5941,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 316: + case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3452 + //line php7/php7.y:3468 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5932,9 +5956,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 317: + case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3465 + //line php7/php7.y:3481 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5947,9 +5971,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 318: + case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3478 + //line php7/php7.y:3494 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5962,9 +5986,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 319: + case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3491 + //line php7/php7.y:3507 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5977,9 +6001,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 320: + case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3504 + //line php7/php7.y:3520 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5992,9 +6016,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 321: + case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3517 + //line php7/php7.y:3533 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -6007,9 +6031,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 322: + case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3530 + //line php7/php7.y:3546 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -6022,9 +6046,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 323: + case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3543 + //line php7/php7.y:3559 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -6037,9 +6061,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 324: + case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3556 + //line php7/php7.y:3572 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -6052,9 +6076,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 325: + case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3569 + //line php7/php7.y:3585 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -6067,9 +6091,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 326: + case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3582 + //line php7/php7.y:3598 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -6082,9 +6106,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 327: + case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3595 + //line php7/php7.y:3611 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -6097,9 +6121,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 328: + case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3608 + //line php7/php7.y:3624 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -6112,9 +6136,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 329: + case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3621 + //line php7/php7.y:3637 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -6127,9 +6151,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 330: + case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3634 + //line php7/php7.y:3650 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6142,9 +6166,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 331: + case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3647 + //line php7/php7.y:3663 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6157,9 +6181,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 332: + case 334: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3660 + //line php7/php7.y:3676 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6172,9 +6196,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 333: + case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3673 + //line php7/php7.y:3689 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6186,9 +6210,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 334: + case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3685 + //line php7/php7.y:3701 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6200,9 +6224,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 335: + case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3697 + //line php7/php7.y:3713 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6214,9 +6238,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 336: + case 338: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3709 + //line php7/php7.y:3725 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6228,9 +6252,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 337: + case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3721 + //line php7/php7.y:3737 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6243,9 +6267,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 338: + case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3734 + //line php7/php7.y:3750 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6258,9 +6282,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 339: + case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3747 + //line php7/php7.y:3763 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6273,9 +6297,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 340: + case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3760 + //line php7/php7.y:3776 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6289,9 +6313,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 341: + case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3774 + //line php7/php7.y:3790 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6304,9 +6328,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 342: + case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3787 + //line php7/php7.y:3803 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6319,9 +6343,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 343: + case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3800 + //line php7/php7.y:3816 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6334,9 +6358,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 344: + case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3813 + //line php7/php7.y:3829 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6349,9 +6373,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 345: + case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3826 + //line php7/php7.y:3842 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -6364,9 +6388,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 346: + case 348: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3839 + //line php7/php7.y:3855 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6379,9 +6403,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 347: + case 349: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3852 + //line php7/php7.y:3868 { yyVAL.node = yyDollar[2].node @@ -6391,17 +6415,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 348: + case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3862 + //line php7/php7.y:3878 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 349: + case 351: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3868 + //line php7/php7.y:3884 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6415,9 +6439,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 350: + case 352: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3882 + //line php7/php7.y:3898 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6431,9 +6455,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 351: + case 353: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3896 + //line php7/php7.y:3912 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -6446,17 +6470,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 352: + case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3909 + //line php7/php7.y:3925 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 353: + case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3915 + //line php7/php7.y:3931 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6469,9 +6493,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 354: + case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3928 + //line php7/php7.y:3944 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6484,9 +6508,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 355: + case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3941 + //line php7/php7.y:3957 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6499,9 +6523,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 356: + case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3954 + //line php7/php7.y:3970 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6514,9 +6538,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 357: + case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3967 + //line php7/php7.y:3983 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6529,9 +6553,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 358: + case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3980 + //line php7/php7.y:3996 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6544,9 +6568,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 359: + case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3993 + //line php7/php7.y:4009 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6559,9 +6583,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 360: + case 362: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4006 + //line php7/php7.y:4022 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6588,9 +6612,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 361: + case 363: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4033 + //line php7/php7.y:4049 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6602,17 +6626,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 362: + case 364: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4045 + //line php7/php7.y:4061 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 363: + case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4051 + //line php7/php7.y:4067 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6624,9 +6648,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 364: + case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4063 + //line php7/php7.y:4079 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6638,9 +6662,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 365: + case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4075 + //line php7/php7.y:4091 { yyVAL.node = expr.NewYield(nil, nil) @@ -6652,9 +6676,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 366: + case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4087 + //line php7/php7.y:4103 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6666,9 +6690,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 367: + case 369: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4099 + //line php7/php7.y:4115 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6681,9 +6705,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 368: + case 370: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4112 + //line php7/php7.y:4128 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -6695,9 +6719,40 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 369: + case 371: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:4140 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 372: + yyDollar = yyS[yypt-2 : yypt+1] + //line php7/php7.y:4146 + { + yyVAL.node = yyDollar[2].node + + switch n := yyVAL.node.(type) { + case *expr.Closure: + n.Static = true + case *expr.ArrowFunction: + n.Static = true + } + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Static, (*yyVAL.node.GetFreeFloating())[freefloating.Start]) + delete((*yyVAL.node.GetFreeFloating()), freefloating.Start) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 373: yyDollar = yyS[yypt-11 : yypt+1] - //line php7/php7.y:4124 + //line php7/php7.y:4169 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) @@ -6732,76 +6787,70 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 370: - yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:4156 + case 374: + yyDollar = yyS[yypt-9 : yypt+1] + //line php7/php7.y:4201 { - yyVAL.node = expr.NewClosure(yyDollar[6].list, yyDollar[8].ClosureUse, yyDollar[9].node, yyDollar[11].list, true, yyDollar[3].token != nil, yyDollar[4].str) + yyVAL.node = expr.NewArrowFunction(yyDollar[4].list, yyDollar[6].node, yyDollar[9].node, false, yyDollar[2].token != nil, yyDollar[7].str) // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[12].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Static, yyDollar[2].token.FreeFloating) - if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[5].token.FreeFloating) - } else { + if yyDollar[2].token == nil { yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[5].token.FreeFloating) + } else { + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[3].token.FreeFloating) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParameterList, yyDollar[7].token.FreeFloating) - if yyDollar[9].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.LexicalVars, (*yyDollar[9].node.GetFreeFloating())[freefloating.Colon]) - delete((*yyDollar[9].node.GetFreeFloating()), freefloating.Colon) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParameterList, yyDollar[5].token.FreeFloating) + if yyDollar[6].node != nil { + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyDollar[6].node.GetFreeFloating())[freefloating.Colon]) + delete((*yyDollar[6].node.GetFreeFloating()), freefloating.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ReturnType, yyDollar[10].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[12].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ReturnType, yyDollar[8].token.FreeFloating) // normalize - if yyDollar[9].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.LexicalVars, (*yyVAL.node.GetFreeFloating())[freefloating.ReturnType]) + if yyDollar[6].node == nil { + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyVAL.node.GetFreeFloating())[freefloating.ReturnType]) delete((*yyVAL.node.GetFreeFloating()), freefloating.ReturnType) } - if yyDollar[8].ClosureUse == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyVAL.node.GetFreeFloating())[freefloating.LexicalVarList]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.LexicalVarList) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 371: + case 375: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4192 + //line php7/php7.y:4232 { yyVAL.str = yylex.(*Parser).Lexer.GetPhpDocComment() yylex.(*Parser).Lexer.SetPhpDocComment("") yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 372: + case 376: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4202 + //line php7/php7.y:4242 { yyVAL.token = nil } - case 373: + case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4206 + //line php7/php7.y:4246 { yyVAL.token = yyDollar[1].token } - case 374: + case 378: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4213 + //line php7/php7.y:4253 { yyVAL.ClosureUse = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 375: + case 379: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4219 + //line php7/php7.y:4259 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6815,9 +6864,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 376: + case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4236 + //line php7/php7.y:4276 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6826,17 +6875,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 377: + case 381: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4245 + //line php7/php7.y:4285 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 378: + case 382: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4254 + //line php7/php7.y:4294 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -6851,9 +6900,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 379: + case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4269 + //line php7/php7.y:4309 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6869,69 +6918,69 @@ yydefault: yylex.(*Parser).setFreeFloating(variable, freefloating.Start, yyDollar[2].token.FreeFloating) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 380: - yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4290 - { - yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 381: - yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4302 - { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 382: - yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4315 - { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 383: - yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4328 - { - yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: + yyDollar = yyS[yypt-2 : yypt+1] + //line php7/php7.y:4330 + { + yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 385: + yyDollar = yyS[yypt-4 : yypt+1] + //line php7/php7.y:4342 + { + yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 386: + yyDollar = yyS[yypt-4 : yypt+1] + //line php7/php7.y:4355 + { + yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 387: + yyDollar = yyS[yypt-2 : yypt+1] + //line php7/php7.y:4368 + { + yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 388: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4343 + //line php7/php7.y:4383 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6943,41 +6992,41 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 385: + case 389: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4355 + //line php7/php7.y:4395 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 386: + case 390: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4364 + //line php7/php7.y:4404 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 387: + case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4370 + //line php7/php7.y:4410 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 388: + case 392: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4379 + //line php7/php7.y:4419 { yyVAL.node = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 389: + case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4385 + //line php7/php7.y:4425 { yyVAL.node = expr.NewExit(yyDollar[2].node) @@ -6990,17 +7039,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 390: + case 394: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4401 + //line php7/php7.y:4441 { yyVAL.list = []node.Node{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 391: + case 395: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4407 + //line php7/php7.y:4447 { part := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{part} @@ -7010,33 +7059,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 392: + case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4417 + //line php7/php7.y:4457 { yyVAL.list = yyDollar[1].list yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 393: + case 397: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4426 + //line php7/php7.y:4466 { yyVAL.node = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 394: + case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4432 + //line php7/php7.y:4472 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 395: + case 399: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4441 + //line php7/php7.y:4481 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -7050,9 +7099,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 396: + case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4455 + //line php7/php7.y:4495 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -7065,9 +7114,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 397: + case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4468 + //line php7/php7.y:4508 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7079,9 +7128,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 398: + case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4483 + //line php7/php7.y:4523 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -7093,9 +7142,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 399: + case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4495 + //line php7/php7.y:4535 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -7105,67 +7154,11 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 400: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4507 - { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 401: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4519 - { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 402: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4531 - { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 403: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4543 - { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4555 + //line php7/php7.y:4547 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7179,7 +7172,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4567 + //line php7/php7.y:4559 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7193,7 +7186,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4579 + //line php7/php7.y:4571 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7207,7 +7200,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4591 + //line php7/php7.y:4583 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7220,8 +7213,64 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 408: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:4595 + { + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 409: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:4607 + { + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 410: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:4619 + { + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 411: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:4631 + { + yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4603 + //line php7/php7.y:4643 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7235,9 +7284,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 409: + case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4617 + //line php7/php7.y:4657 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7249,9 +7298,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 410: + case 414: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4629 + //line php7/php7.y:4669 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -7263,9 +7312,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 411: + case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4641 + //line php7/php7.y:4681 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -7277,25 +7326,25 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 412: + case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4653 + //line php7/php7.y:4693 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 413: + case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4659 + //line php7/php7.y:4699 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 414: + case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4668 + //line php7/php7.y:4708 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) @@ -7305,79 +7354,47 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 415: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4680 - { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) - - // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, yyDollar[3].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 416: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4696 - { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) - - // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, yyDollar[3].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 417: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4715 - { - yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 418: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4721 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 419: - yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4730 + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:4720 { - yyVAL.node = nil + target := node.NewIdentifier(yyDollar[3].token.Value) + yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) + + // save position + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(target, freefloating.Start, yyDollar[3].token.FreeFloating) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 420: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line php7/php7.y:4736 { - yyVAL.node = yyDollar[1].node + target := node.NewIdentifier(yyDollar[3].token.Value) + yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) + + // save position + target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(target, freefloating.Start, yyDollar[3].token.FreeFloating) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4745 + //line php7/php7.y:4755 { yyVAL.node = yyDollar[1].node @@ -7385,27 +7402,23 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4754 + //line php7/php7.y:4761 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 423: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4760 + yyDollar = yyS[yypt-0 : yypt+1] + //line php7/php7.y:4770 { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, append(yyDollar[1].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), (*yyVAL.node.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append((*yyVAL.node.GetFreeFloating())[freefloating.End], append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yyVAL.node = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4770 + //line php7/php7.y:4776 { yyVAL.node = yyDollar[1].node @@ -7413,15 +7426,23 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4779 + //line php7/php7.y:4785 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 426: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:4794 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4785 + //line php7/php7.y:4800 { yyVAL.node = yyDollar[2].node @@ -7429,59 +7450,55 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, append(yyDollar[1].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), (*yyVAL.node.GetFreeFloating())[freefloating.Start]...)...)) yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append((*yyVAL.node.GetFreeFloating())[freefloating.End], append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 427: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4795 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4804 + //line php7/php7.y:4810 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 429: - yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4810 + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:4819 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 430: - yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4824 + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:4825 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, append(yyDollar[1].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), (*yyVAL.node.GetFreeFloating())[freefloating.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append((*yyVAL.node.GetFreeFloating())[freefloating.End], append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 431: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:4835 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 432: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:4844 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 433: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4838 + //line php7/php7.y:4850 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7495,9 +7512,41 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 432: + case 434: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4852 + //line php7/php7.y:4864 + { + yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 435: + yyDollar = yyS[yypt-4 : yypt+1] + //line php7/php7.y:4878 + { + yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 436: + yyDollar = yyS[yypt-4 : yypt+1] + //line php7/php7.y:4892 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7510,33 +7559,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 433: + case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4865 + //line php7/php7.y:4905 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 434: + case 438: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4874 + //line php7/php7.y:4914 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 435: + case 439: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4880 + //line php7/php7.y:4920 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 436: + case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4886 + //line php7/php7.y:4926 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7549,9 +7598,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 437: + case 441: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4902 + //line php7/php7.y:4942 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7566,9 +7615,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 438: + case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4917 + //line php7/php7.y:4957 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -7583,9 +7632,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 439: + case 443: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4932 + //line php7/php7.y:4972 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7596,81 +7645,81 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 440: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4948 - { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 441: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4961 - { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 442: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4977 - { - yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 443: - yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4983 - { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: - yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4997 + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:4988 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 445: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5011 + //line php7/php7.y:5001 + { + yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[2].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 446: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:5017 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 447: + yyDollar = yyS[yypt-4 : yypt+1] + //line php7/php7.y:5023 + { + yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 448: + yyDollar = yyS[yypt-4 : yypt+1] + //line php7/php7.y:5037 + { + yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 449: + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:5051 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7681,75 +7730,41 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 446: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5024 - { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 447: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5037 - { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 448: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5053 - { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) - - // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 449: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5065 - { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, append(yyDollar[1].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), (*yyVAL.node.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append((*yyVAL.node.GetFreeFloating())[freefloating.End], append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 450: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5075 + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:5064 { - yyVAL.node = yyDollar[1].node + yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 451: + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:5077 + { + yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 452: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5084 + //line php7/php7.y:5093 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7761,9 +7776,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 452: + case 453: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5096 + //line php7/php7.y:5105 { yyVAL.node = yyDollar[2].node @@ -7771,46 +7786,80 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, append(yyDollar[1].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), (*yyVAL.node.GetFreeFloating())[freefloating.Start]...)...)) yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append((*yyVAL.node.GetFreeFloating())[freefloating.End], append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 453: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5106 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 454: yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:5115 { - yyVAL.list = yyDollar[1].list + yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 455: - yyDollar = yyS[yypt-0 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line php7/php7.y:5124 { - yyVAL.node = expr.NewArrayItem(nil, nil) + yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 456: + yyDollar = yyS[yypt-3 : yypt+1] + //line php7/php7.y:5136 + { + yyVAL.node = yyDollar[2].node + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, append(yyDollar[1].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), (*yyVAL.node.GetFreeFloating())[freefloating.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append((*yyVAL.node.GetFreeFloating())[freefloating.End], append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5130 + //line php7/php7.y:5146 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 457: + case 458: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:5155 + { + yyVAL.list = yyDollar[1].list + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 459: + yyDollar = yyS[yypt-0 : yypt+1] + //line php7/php7.y:5164 + { + yyVAL.node = expr.NewArrayItem(nil, nil, false) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 460: + yyDollar = yyS[yypt-1 : yypt+1] + //line php7/php7.y:5170 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 461: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5139 + //line php7/php7.y:5179 { if len(yyDollar[1].list) == 0 { - yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil)} + yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil, false)} } yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7820,9 +7869,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 458: + case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5152 + //line php7/php7.y:5192 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -7832,11 +7881,11 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 459: + case 463: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5165 + //line php7/php7.y:5205 { - yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) @@ -7847,11 +7896,11 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 460: + case 464: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5178 + //line php7/php7.y:5218 { - yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node) + yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) @@ -7861,12 +7910,12 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 461: + case 465: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5190 + //line php7/php7.y:5230 { reference := expr.NewReference(yyDollar[4].node) - yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference) + yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference, false) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) @@ -7879,12 +7928,12 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 462: + case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5206 + //line php7/php7.y:5246 { reference := expr.NewReference(yyDollar[2].node) - yyVAL.node = expr.NewArrayItem(nil, reference) + yyVAL.node = expr.NewArrayItem(nil, reference, false) // save position yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) @@ -7895,13 +7944,27 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 463: + case 467: + yyDollar = yyS[yypt-2 : yypt+1] + //line php7/php7.y:5260 + { + yyVAL.node = expr.NewArrayItem(nil, yyDollar[2].node, true) + + // save position + yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 468: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5220 + //line php7/php7.y:5272 { // TODO: Cannot use list() as standalone expression listNode := expr.NewList(yyDollar[5].list) - yyVAL.node = expr.NewArrayItem(yyDollar[1].node, listNode) + yyVAL.node = expr.NewArrayItem(yyDollar[1].node, listNode, false) // save position listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token)) @@ -7916,13 +7979,13 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 464: + case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5239 + //line php7/php7.y:5291 { // TODO: Cannot use list() as standalone expression listNode := expr.NewList(yyDollar[3].list) - yyVAL.node = expr.NewArrayItem(nil, listNode) + yyVAL.node = expr.NewArrayItem(nil, listNode, false) // save position listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) @@ -7935,17 +7998,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 465: + case 470: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5259 + //line php7/php7.y:5311 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 466: + case 471: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5265 + //line php7/php7.y:5317 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7958,17 +8021,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 467: + case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5278 + //line php7/php7.y:5330 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 468: + case 473: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5284 + //line php7/php7.y:5336 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -7981,9 +8044,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 469: + case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5300 + //line php7/php7.y:5352 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7998,9 +8061,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 470: + case 475: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5315 + //line php7/php7.y:5367 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -8018,9 +8081,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 471: + case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5333 + //line php7/php7.y:5385 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -8040,9 +8103,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 472: + case 477: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5353 + //line php7/php7.y:5405 { variable := expr.NewVariable(yyDollar[2].node) @@ -8057,9 +8120,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 473: + case 478: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5368 + //line php7/php7.y:5420 { name := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(name) @@ -8076,9 +8139,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 474: + case 479: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5385 + //line php7/php7.y:5437 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -8097,9 +8160,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 475: + case 480: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5404 + //line php7/php7.y:5456 { yyVAL.node = yyDollar[2].node @@ -8109,9 +8172,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 476: + case 481: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5417 + //line php7/php7.y:5469 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -8123,9 +8186,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 477: + case 482: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5429 + //line php7/php7.y:5481 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -8142,9 +8205,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 478: + case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5446 + //line php7/php7.y:5498 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -8170,9 +8233,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 479: + case 484: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5472 + //line php7/php7.y:5524 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -8187,9 +8250,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 480: + case 485: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:5490 + //line php7/php7.y:5542 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -8207,9 +8270,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 481: + case 486: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5508 + //line php7/php7.y:5560 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -8223,9 +8286,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 482: + case 487: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5522 + //line php7/php7.y:5574 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -8237,9 +8300,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 483: + case 488: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5534 + //line php7/php7.y:5586 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -8251,9 +8314,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 484: + case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5546 + //line php7/php7.y:5598 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -8267,9 +8330,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 485: + case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5560 + //line php7/php7.y:5612 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -8281,9 +8344,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 486: + case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5572 + //line php7/php7.y:5624 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -8295,17 +8358,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 487: + case 492: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5587 + //line php7/php7.y:5639 { yyVAL.list = []node.Node{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 488: + case 493: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5593 + //line php7/php7.y:5645 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8314,9 +8377,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 489: + case 494: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5605 + //line php7/php7.y:5657 { yyVAL.node = yyDollar[1].node diff --git a/php7/php7.y b/php7/php7.y index fe41a71..e6634ff 100644 --- a/php7/php7.y +++ b/php7/php7.y @@ -66,6 +66,7 @@ import ( %token T_CONTINUE %token T_GOTO %token T_FUNCTION +%token T_FN %token T_CONST %token T_RETURN %token T_TRY @@ -157,6 +158,7 @@ import ( %token T_XOR_EQUAL %token T_SL_EQUAL %token T_SR_EQUAL +%token T_COALESCE_EQUAL %token T_BOOLEAN_OR %token T_BOOLEAN_AND %token T_POW @@ -206,7 +208,7 @@ import ( %right T_YIELD %right T_DOUBLE_ARROW %right T_YIELD_FROM -%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL +%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL T_COALESCE_EQUAL %left '?' ':' %right T_COALESCE %left T_BOOLEAN_OR @@ -269,6 +271,7 @@ import ( %type switch_case_list %type method_body %type foreach_statement for_statement while_statement +%type inline_function %type extends_from %type implements_list %type interface_extends_list @@ -316,7 +319,7 @@ reserved_non_modifiers: | T_THROW {$$=$1} | T_USE {$$=$1} | T_INSTEADOF {$$=$1} | T_GLOBAL {$$=$1} | T_VAR {$$=$1} | T_UNSET {$$=$1} | T_ISSET {$$=$1} | T_EMPTY {$$=$1} | T_CONTINUE {$$=$1} | T_GOTO {$$=$1} | T_FUNCTION {$$=$1} | T_CONST {$$=$1} | T_RETURN {$$=$1} | T_PRINT {$$=$1} | T_YIELD {$$=$1} | T_LIST {$$=$1} | T_SWITCH {$$=$1} | T_ENDSWITCH {$$=$1} | T_CASE {$$=$1} | T_DEFAULT {$$=$1} | T_BREAK {$$=$1} | T_ARRAY {$$=$1} | T_CALLABLE {$$=$1} | T_EXTENDS {$$=$1} | T_IMPLEMENTS {$$=$1} | T_NAMESPACE {$$=$1} | T_TRAIT {$$=$1} | T_INTERFACE {$$=$1} | T_CLASS {$$=$1} - | T_CLASS_C {$$=$1} | T_TRAIT_C {$$=$1} | T_FUNC_C {$$=$1} | T_METHOD_C {$$=$1} | T_LINE {$$=$1} | T_FILE {$$=$1} | T_DIR {$$=$1} | T_NS_C {$$=$1} + | T_CLASS_C {$$=$1} | T_TRAIT_C {$$=$1} | T_FUNC_C {$$=$1} | T_METHOD_C {$$=$1} | T_LINE {$$=$1} | T_FILE {$$=$1} | T_DIR {$$=$1} | T_NS_C {$$=$1} | T_FN {$$=$1} ; semi_reserved: @@ -2493,17 +2496,17 @@ class_statement_list: ; class_statement: - variable_modifiers property_list ';' + variable_modifiers optional_type property_list ';' { - $$ = stmt.NewPropertyList($1, $2) + $$ = stmt.NewPropertyList($1, $2, $3) // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $4)) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, freefloating.PropertyList, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, freefloating.PropertyList, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3396,6 +3399,19 @@ expr_without_variable: yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_COALESCE_EQUAL expr + { + $$ = assign.NewCoalesce($1, $3) + + // save position + $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_INC @@ -4120,7 +4136,36 @@ expr_without_variable: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - | T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' + | inline_function + { + $$ = $1; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_STATIC inline_function + { + $$ = $2; + + switch n := $$.(type) { + case *expr.Closure : + n.Static = true; + case *expr.ArrowFunction : + n.Static = true; + }; + + // save position + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + + // save comments + yylex.(*Parser).setFreeFloating($$, freefloating.Static, (*$$.GetFreeFloating())[freefloating.Start]); delete((*$$.GetFreeFloating()), freefloating.Start) + yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating); + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +inline_function: + T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { $$ = expr.NewClosure($5, $7, $8, $10, false, $2 != nil, $3) @@ -4152,36 +4197,31 @@ expr_without_variable: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - | T_STATIC T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' + | T_FN returns_ref '(' parameter_list ')' return_type backup_doc_comment T_DOUBLE_ARROW expr { - $$ = expr.NewClosure($6, $8, $9, $11, true, $3 != nil, $4) + $$ = expr.NewArrowFunction($4, $6, $9, false, $2 != nil, $7) // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $12)) + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) // save comments yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Static, $2.FreeFloating) - if $3 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $5.FreeFloating) - } else { + if $2 == nil { yylex.(*Parser).setFreeFloating($$, freefloating.Function, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $5.FreeFloating) - } - yylex.(*Parser).setFreeFloating($$, freefloating.ParameterList, $7.FreeFloating) - if $9 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.LexicalVars, (*$9.GetFreeFloating())[freefloating.Colon]); delete((*$9.GetFreeFloating()), freefloating.Colon) - } - yylex.(*Parser).setFreeFloating($$, freefloating.ReturnType, $10.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $12.FreeFloating) + } else { + yylex.(*Parser).setFreeFloating($$, freefloating.Function, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $3.FreeFloating) + }; + yylex.(*Parser).setFreeFloating($$, freefloating.ParameterList, $5.FreeFloating) + if $6 != nil { + yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$6.GetFreeFloating())[freefloating.Colon]); delete((*$6.GetFreeFloating()), freefloating.Colon) + }; + yylex.(*Parser).setFreeFloating($$, freefloating.ReturnType, $8.FreeFloating) // normalize - if $9 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.LexicalVars, (*$$.GetFreeFloating())[freefloating.ReturnType]); delete((*$$.GetFreeFloating()), freefloating.ReturnType) - } - if $8 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$$.GetFreeFloating())[freefloating.LexicalVarList]); delete((*$$.GetFreeFloating()), freefloating.LexicalVarList) - } + if $6 == nil { + yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$$.GetFreeFloating())[freefloating.ReturnType]); delete((*$$.GetFreeFloating()), freefloating.ReturnType) + }; yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5122,7 +5162,7 @@ array_pair_list: possible_array_pair: /* empty */ { - $$ = expr.NewArrayItem(nil, nil) + $$ = expr.NewArrayItem(nil, nil, false) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5138,7 +5178,7 @@ non_empty_array_pair_list: non_empty_array_pair_list ',' possible_array_pair { if len($1) == 0 { - $1 = []node.Node{expr.NewArrayItem(nil, nil)} + $1 = []node.Node{expr.NewArrayItem(nil, nil, false)} } $$ = append($1, $3) @@ -5163,7 +5203,7 @@ non_empty_array_pair_list: array_pair: expr T_DOUBLE_ARROW expr { - $$ = expr.NewArrayItem($1, $3) + $$ = expr.NewArrayItem($1, $3, false) // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) @@ -5176,7 +5216,7 @@ array_pair: } | expr { - $$ = expr.NewArrayItem(nil, $1) + $$ = expr.NewArrayItem(nil, $1, false) // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) @@ -5189,7 +5229,7 @@ array_pair: | expr T_DOUBLE_ARROW '&' variable { reference := expr.NewReference($4) - $$ = expr.NewArrayItem($1, reference) + $$ = expr.NewArrayItem($1, reference, false) // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) @@ -5205,7 +5245,7 @@ array_pair: | '&' variable { reference := expr.NewReference($2) - $$ = expr.NewArrayItem(nil, reference) + $$ = expr.NewArrayItem(nil, reference, false) // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) @@ -5214,13 +5254,25 @@ array_pair: // save comments yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_ELLIPSIS expr + { + $$ = expr.NewArrayItem(nil, $2, true) + + // save position + $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + + // save comments + yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { // TODO: Cannot use list() as standalone expression listNode := expr.NewList($5) - $$ = expr.NewArrayItem($1, listNode) + $$ = expr.NewArrayItem($1, listNode, false) // save position listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $6)) @@ -5239,7 +5291,7 @@ array_pair: { // TODO: Cannot use list() as standalone expression listNode := expr.NewList($3) - $$ = expr.NewArrayItem(nil, listNode) + $$ = expr.NewArrayItem(nil, listNode, false) // save position listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) diff --git a/php7/php7_bench_test.go b/php7/php7_bench_test.go index de7bc0a..c7acc29 100644 --- a/php7/php7_bench_test.go +++ b/php7/php7_bench_test.go @@ -381,7 +381,7 @@ CAD; ` for n := 0; n < b.N; n++ { - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() } } diff --git a/php7/php7_test.go b/php7/php7_test.go index 792479a..32b79c7 100644 --- a/php7/php7_test.go +++ b/php7/php7_test.go @@ -16118,7 +16118,7 @@ func TestPhp7(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16233,7 +16233,7 @@ func TestPhp5Strings(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16423,7 +16423,7 @@ CAD; }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16443,7 +16443,7 @@ func TestPhp7ControlCharsErrors(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetErrors() assert.DeepEqual(t, expected, actual) diff --git a/parser/position_builder.go b/positionbuilder/position_builder.go similarity index 99% rename from parser/position_builder.go rename to positionbuilder/position_builder.go index c8747da..b6b8aa4 100644 --- a/parser/position_builder.go +++ b/positionbuilder/position_builder.go @@ -1,4 +1,4 @@ -package parser +package positionbuilder import ( "github.com/z7zmey/php-parser/node" diff --git a/parser/position_builder_test.go b/positionbuilder/position_builder_test.go similarity index 90% rename from parser/position_builder_test.go rename to positionbuilder/position_builder_test.go index de33f37..fd8fa2b 100644 --- a/parser/position_builder_test.go +++ b/positionbuilder/position_builder_test.go @@ -1,17 +1,17 @@ -package parser_test +package positionbuilder_test import ( "testing" "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/parser" "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/positionbuilder" "github.com/z7zmey/php-parser/scanner" ) func TestNewTokenPosition(t *testing.T) { - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} tkn := &scanner.Token{ Value: `foo`, @@ -29,7 +29,7 @@ func TestNewTokenPosition(t *testing.T) { } func TestNewTokensPosition(t *testing.T) { - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} token1 := &scanner.Token{ Value: `foo`, @@ -62,7 +62,7 @@ func TestNewNodePosition(t *testing.T) { EndPos: 3, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodePosition(n) @@ -87,7 +87,7 @@ func TestNewTokenNodePosition(t *testing.T) { EndPos: 12, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewTokenNodePosition(tkn, n) @@ -113,7 +113,7 @@ func TestNewNodeTokenPosition(t *testing.T) { EndPos: 12, } - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodeTokenPosition(n, tkn) @@ -139,7 +139,7 @@ func TestNewNodeListPosition(t *testing.T) { EndPos: 19, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodeListPosition([]node.Node{n1, n2}) @@ -165,7 +165,7 @@ func TestNewNodesPosition(t *testing.T) { EndPos: 19, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodesPosition(n1, n2) @@ -199,7 +199,7 @@ func TestNewNodeListTokenPosition(t *testing.T) { EndPos: 22, } - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodeListTokenPosition([]node.Node{n1, n2}, tkn) @@ -233,7 +233,7 @@ func TestNewTokenNodeListPosition(t *testing.T) { EndPos: 20, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewTokenNodeListPosition(tkn, []node.Node{n1, n2}) @@ -267,7 +267,7 @@ func TestNewNodeNodeListPosition(t *testing.T) { EndPos: 26, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodeNodeListPosition(n1, []node.Node{n2, n3}) @@ -299,7 +299,7 @@ func TestNewNodeListNodePosition(t *testing.T) { EndPos: 26, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodeListNodePosition([]node.Node{n1, n2}, n3) @@ -309,7 +309,7 @@ func TestNewNodeListNodePosition(t *testing.T) { } func TestNewOptionalListTokensPosition(t *testing.T) { - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} token1 := &scanner.Token{ Value: `foo`, @@ -356,7 +356,7 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { EndPos: 26, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} token1 := &scanner.Token{ Value: `foo`, @@ -381,7 +381,7 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { } func TestNilNodePos(t *testing.T) { - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodesPosition(nil, nil) @@ -399,7 +399,7 @@ func TestNilNodeListPos(t *testing.T) { EndPos: 8, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodeNodeListPosition(n1, nil) @@ -417,7 +417,7 @@ func TestNilNodeListTokenPos(t *testing.T) { EndPos: 3, } - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodeListTokenPosition(nil, token) @@ -435,7 +435,7 @@ func TestEmptyNodeListPos(t *testing.T) { EndPos: 8, }) - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodeNodeListPosition(n1, []node.Node{}) @@ -453,7 +453,7 @@ func TestEmptyNodeListTokenPos(t *testing.T) { EndPos: 3, } - builder := parser.PositionBuilder{} + builder := positionbuilder.PositionBuilder{} pos := builder.NewNodeListTokenPosition([]node.Node{}, token) diff --git a/printer/printer.go b/printer/printer.go index e0c3f26..06ad2ae 100644 --- a/printer/printer.go +++ b/printer/printer.go @@ -135,6 +135,8 @@ func (p *Printer) printNode(n node.Node) { p.printAssignBitwiseOr(n) case *assign.BitwiseXor: p.printAssignBitwiseXor(n) + case *assign.Coalesce: + p.printAssignCoalesce(n) case *assign.Concat: p.printAssignConcat(n) case *assign.Div: @@ -236,6 +238,8 @@ func (p *Printer) printNode(n node.Node) { p.printExprArrayItem(n) case *expr.Array: p.printExprArray(n) + case *expr.ArrowFunction: + p.printExprArrowFunction(n) case *expr.BitwiseNot: p.printExprBitwiseNot(n) case *expr.BooleanNot: @@ -712,6 +716,17 @@ func (p *Printer) printAssignBitwiseXor(n node.Node) { p.printFreeFloating(nn, freefloating.End) } +func (p *Printer) printAssignCoalesce(n node.Node) { + nn := n.(*assign.Coalesce) + p.printFreeFloating(nn, freefloating.Start) + p.Print(nn.Variable) + p.printFreeFloating(nn, freefloating.Var) + io.WriteString(p.w, "??=") + p.Print(nn.Expression) + + p.printFreeFloating(nn, freefloating.End) +} + func (p *Printer) printAssignConcat(n node.Node) { nn := n.(*assign.Concat) p.printFreeFloating(nn, freefloating.Start) @@ -1289,6 +1304,10 @@ func (p *Printer) printExprArrayItem(n node.Node) { nn := n.(*expr.ArrayItem) p.printFreeFloating(nn, freefloating.Start) + if nn.Unpack { + io.WriteString(p.w, "...") + } + if nn.Key != nil { p.Print(nn.Key) p.printFreeFloating(nn, freefloating.Expr) @@ -1313,6 +1332,45 @@ func (p *Printer) printExprArray(n node.Node) { p.printFreeFloating(nn, freefloating.End) } +func (p *Printer) printExprArrowFunction(n node.Node) { + nn := n.(*expr.ArrowFunction) + p.printFreeFloating(nn, freefloating.Start) + + if nn.Static { + io.WriteString(p.w, "static") + } + p.printFreeFloating(nn, freefloating.Static) + if nn.Static && n.GetFreeFloating().IsEmpty() { + io.WriteString(p.w, " ") + } + + io.WriteString(p.w, "fn") + p.printFreeFloating(nn, freefloating.Function) + + if nn.ReturnsRef { + io.WriteString(p.w, "&") + } + p.printFreeFloating(nn, freefloating.Ampersand) + + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Params) + p.printFreeFloating(nn, freefloating.ParameterList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, freefloating.Params) + + if nn.ReturnType != nil { + io.WriteString(p.w, ":") + p.Print(nn.ReturnType) + } + p.printFreeFloating(nn, freefloating.ReturnType) + + io.WriteString(p.w, "=>") + + p.printNode(nn.Expr) + + p.printFreeFloating(nn, freefloating.End) +} + func (p *Printer) printExprBitwiseNot(n node.Node) { nn := n.(*expr.BitwiseNot) p.printFreeFloating(nn, freefloating.Start) @@ -2834,6 +2892,12 @@ func (p *Printer) printStmtPropertyList(n node.Node) { p.Print(m) } + if nn.Type != nil && nn.Type.GetFreeFloating().IsEmpty() { + io.WriteString(p.w, " ") + } + + p.Print(nn.Type) + if nn.Properties[0].GetFreeFloating().IsEmpty() { io.WriteString(p.w, " ") } diff --git a/printer/printer_parsed_php5_test.go b/printer/printer_parsed_php5_test.go index c450c62..660987a 100644 --- a/printer/printer_parsed_php5_test.go +++ b/printer/printer_parsed_php5_test.go @@ -10,7 +10,7 @@ import ( ) func parsePhp5(src string) node.Node { - php5parser := php5.NewParser([]byte(src)) + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.WithFreeFloating() php5parser.Parse() @@ -1077,6 +1077,18 @@ func TestParseAndPrintPhp5InlineHtml(t *testing.T) { } } +func TestParseAndPrintPhp5Shebang(t *testing.T) { + src := `#!/usr/bin/env php + test $world , + ... $unpack ] ; ` @@ -482,6 +484,18 @@ func TestParseAndPrintClosure(t *testing.T) { } } +func TestParseAndPrintArrowFunction(t *testing.T) { + src := ` $c ; + ` + + actual := print(parse(src)) + + if src != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) + } +} + func TestParseAndPrintConstFetch(t *testing.T) { src := `test$a;` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestPrinterPrintExprConstFetch(t *testing.T) { o := bytes.NewBufferString("") @@ -3873,6 +3947,13 @@ func TestPrinterPrintPropertyList(t *testing.T) { &node.Identifier{Value: "public"}, &node.Identifier{Value: "static"}, }, + Type: &name.Name{ + Parts: []node.Node{ + &name.NamePart{ + Value: "Foo", + }, + }, + }, Properties: []node.Node{ &stmt.Property{ Variable: &expr.Variable{ @@ -3888,7 +3969,7 @@ func TestPrinterPrintPropertyList(t *testing.T) { }, }) - expected := `public static $a='a',$b;` + expected := `public static Foo $a='a',$b;` actual := o.String() if expected != actual { diff --git a/scanner/lexer.go b/scanner/lexer.go index 206eb59..42e46ff 100644 --- a/scanner/lexer.go +++ b/scanner/lexer.go @@ -7,6 +7,7 @@ import ( "github.com/z7zmey/php-parser/errors" "github.com/z7zmey/php-parser/freefloating" "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/version" ) type Scanner interface { @@ -41,6 +42,7 @@ type Lexer struct { lastToken *Token Errors []*errors.Error NewLines NewLines + PHPVersion string } func (l *Lexer) ReturnTokenToPool(t *Token) { @@ -132,6 +134,19 @@ func (lex *Lexer) isNotStringEnd(s byte) bool { } func (lex *Lexer) isHeredocEnd(p int) bool { + r, err := version.Compare(lex.PHPVersion, "7.3") + if err != nil { + return lex.isHeredocEndSince73(p) + } + + if r == -1 { + return lex.isHeredocEndBefore73(p) + } + + return lex.isHeredocEndSince73(p) +} + +func (lex *Lexer) isHeredocEndBefore73(p int) bool { if lex.data[p-1] != '\r' && lex.data[p-1] != '\n' { return false } @@ -152,6 +167,37 @@ func (lex *Lexer) isHeredocEnd(p int) bool { return bytes.Equal(lex.heredocLabel, lex.data[p:p+l]) } +func (lex *Lexer) isHeredocEndSince73(p int) bool { + if lex.data[p-1] != '\r' && lex.data[p-1] != '\n' { + return false + } + + for lex.data[p] == ' ' || lex.data[p] == '\t' { + p++ + } + + l := len(lex.heredocLabel) + if len(lex.data) < p+l { + return false + } + + if len(lex.data) > p+l && isValidVarName(lex.data[p+l]) { + return false + } + + a := string(lex.heredocLabel) + b := string(lex.data[p : p+l]) + + _, _ = a, b + + if bytes.Equal(lex.heredocLabel, lex.data[p:p+l]) { + lex.p = p + return true + } + + return false +} + func (lex *Lexer) isNotHeredocEnd(p int) bool { return !lex.isHeredocEnd(p) } @@ -221,5 +267,9 @@ func (lex *Lexer) Error(msg string) { } func isValidVarNameStart(r byte) bool { - return r >= 'A' && r <= 'Z' || r == '_' || r >= 'a' && r <= 'z' || r >= '\u007f' && r <= 'ÿ' + return (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || r == '_' || (r >= 0x80 && r <= 0xff) +} + +func isValidVarName(r byte) bool { + return (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') || r == '_' || (r >= 0x80 && r <= 0xff) } diff --git a/scanner/lexer_tokens.go b/scanner/lexer_tokens.go index 97d8c11..bd54024 100644 --- a/scanner/lexer_tokens.go +++ b/scanner/lexer_tokens.go @@ -38,6 +38,7 @@ const ( T_CONTINUE T_GOTO T_FUNCTION + T_FN T_CONST T_RETURN T_TRY @@ -129,6 +130,7 @@ const ( T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL + T_COALESCE_EQUAL T_BOOLEAN_OR T_BOOLEAN_AND T_POW diff --git a/scanner/scanner.go b/scanner/scanner.go index 096d79c..22dafb5 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -3,32 +3,35 @@ package scanner import ( "fmt" + "strconv" + "strings" "github.com/z7zmey/php-parser/freefloating" ) -//line scanner/scanner.go:13 -const lexer_start int = 107 -const lexer_first_final int = 107 +//line scanner/scanner.go:15 +const lexer_start int = 111 +const lexer_first_final int = 111 const lexer_error int = 0 -const lexer_en_main int = 107 -const lexer_en_php int = 114 -const lexer_en_property int = 459 -const lexer_en_nowdoc int = 465 -const lexer_en_heredoc int = 468 -const lexer_en_backqote int = 474 -const lexer_en_template_string int = 480 -const lexer_en_heredoc_end int = 486 -const lexer_en_string_var int = 488 -const lexer_en_string_var_index int = 493 -const lexer_en_string_var_name int = 503 -const lexer_en_halt_compiller_open_parenthesis int = 505 -const lexer_en_halt_compiller_close_parenthesis int = 509 -const lexer_en_halt_compiller_close_semicolon int = 513 -const lexer_en_halt_compiller_end int = 517 +const lexer_en_main int = 111 +const lexer_en_html int = 114 +const lexer_en_php int = 121 +const lexer_en_property int = 468 +const lexer_en_nowdoc int = 474 +const lexer_en_heredoc int = 477 +const lexer_en_backqote int = 483 +const lexer_en_template_string int = 489 +const lexer_en_heredoc_end int = 495 +const lexer_en_string_var int = 497 +const lexer_en_string_var_index int = 502 +const lexer_en_string_var_name int = 512 +const lexer_en_halt_compiller_open_parenthesis int = 514 +const lexer_en_halt_compiller_close_parenthesis int = 518 +const lexer_en_halt_compiller_close_semicolon int = 522 +const lexer_en_halt_compiller_end int = 526 -//line scanner/scanner.rl:15 +//line scanner/scanner.rl:17 func NewLexer(data []byte) *Lexer { lex := &Lexer{ @@ -40,7 +43,7 @@ func NewLexer(data []byte) *Lexer { NewLines: NewLines{make([]int, 0, 128)}, } -//line scanner/scanner.go:48 +//line scanner/scanner.go:51 { lex.cs = lexer_start lex.top = 0 @@ -49,7 +52,7 @@ func NewLexer(data []byte) *Lexer { lex.act = 0 } -//line scanner/scanner.rl:27 +//line scanner/scanner.rl:29 return lex } @@ -67,7 +70,7 @@ func (lex *Lexer) Lex(lval Lval) int { _, _ = lblStart, lblEnd -//line scanner/scanner.go:76 +//line scanner/scanner.go:79 { var _widec int16 if (lex.p) == (lex.pe) { @@ -77,58 +80,44 @@ func (lex *Lexer) Lex(lval Lval) int { _again: switch lex.cs { - case 107: - goto st107 - case 108: - goto st108 - case 109: - goto st109 - case 110: - goto st110 case 111: goto st111 case 112: goto st112 case 1: goto st1 - case 2: - goto st2 - case 3: - goto st3 case 113: goto st113 - case 4: - goto st4 case 114: goto st114 case 115: goto st115 case 116: goto st116 - case 5: - goto st5 case 117: goto st117 case 118: goto st118 case 119: goto st119 + case 2: + goto st2 + case 3: + goto st3 + case 4: + goto st4 case 120: goto st120 - case 6: - goto st6 - case 7: - goto st7 - case 8: - goto st8 - case 9: - goto st9 + case 5: + goto st5 case 121: goto st121 case 122: goto st122 case 123: goto st123 + case 6: + goto st6 case 124: goto st124 case 125: @@ -137,14 +126,34 @@ func (lex *Lexer) Lex(lval Lval) int { goto st126 case 127: goto st127 + case 7: + goto st7 + case 8: + goto st8 + case 9: + goto st9 case 10: goto st10 - case 11: - goto st11 case 128: goto st128 + case 129: + goto st129 + case 130: + goto st130 + case 131: + goto st131 + case 132: + goto st132 + case 133: + goto st133 + case 134: + goto st134 + case 11: + goto st11 case 12: goto st12 + case 135: + goto st135 case 13: goto st13 case 14: @@ -251,104 +260,94 @@ func (lex *Lexer) Lex(lval Lval) int { goto st64 case 65: goto st65 - case 129: - goto st129 - case 130: - goto st130 - case 131: - goto st131 - case 132: - goto st132 - case 133: - goto st133 case 66: goto st66 - case 134: - goto st134 - case 67: - goto st67 - case 68: - goto st68 - case 135: - goto st135 case 136: goto st136 - case 69: - goto st69 - case 70: - goto st70 - case 71: - goto st71 case 137: goto st137 case 138: goto st138 - case 72: - goto st72 case 139: goto st139 - case 73: - goto st73 case 140: goto st140 + case 67: + goto st67 case 141: goto st141 + case 68: + goto st68 + case 69: + goto st69 case 142: goto st142 - case 74: - goto st74 - case 75: - goto st75 - case 76: - goto st76 - case 77: - goto st77 + case 70: + goto st70 case 143: goto st143 + case 71: + goto st71 + case 72: + goto st72 + case 73: + goto st73 case 144: goto st144 - case 78: - goto st78 case 145: goto st145 case 146: goto st146 - case 79: - goto st79 - case 80: - goto st80 - case 81: - goto st81 - case 82: - goto st82 + case 74: + goto st74 + case 75: + goto st75 case 147: goto st147 - case 83: - goto st83 - case 84: - goto st84 - case 85: - goto st85 - case 86: - goto st86 + case 76: + goto st76 case 148: goto st148 case 149: goto st149 case 150: goto st150 + case 77: + goto st77 + case 78: + goto st78 + case 79: + goto st79 + case 80: + goto st80 case 151: goto st151 case 152: goto st152 + case 81: + goto st81 case 153: goto st153 case 154: goto st154 + case 82: + goto st82 + case 83: + goto st83 + case 84: + goto st84 + case 85: + goto st85 case 155: goto st155 + case 86: + goto st86 case 87: goto st87 + case 88: + goto st88 + case 89: + goto st89 case 156: goto st156 case 157: @@ -365,6 +364,8 @@ func (lex *Lexer) Lex(lval Lval) int { goto st162 case 163: goto st163 + case 90: + goto st90 case 164: goto st164 case 165: @@ -375,10 +376,6 @@ func (lex *Lexer) Lex(lval Lval) int { goto st167 case 168: goto st168 - case 88: - goto st88 - case 89: - goto st89 case 169: goto st169 case 170: @@ -397,6 +394,10 @@ func (lex *Lexer) Lex(lval Lval) int { goto st176 case 177: goto st177 + case 91: + goto st91 + case 92: + goto st92 case 178: goto st178 case 179: @@ -819,18 +820,6 @@ func (lex *Lexer) Lex(lval Lval) int { goto st387 case 388: goto st388 - case 90: - goto st90 - case 91: - goto st91 - case 92: - goto st92 - case 93: - goto st93 - case 94: - goto st94 - case 95: - goto st95 case 389: goto st389 case 390: @@ -849,6 +838,18 @@ func (lex *Lexer) Lex(lval Lval) int { goto st396 case 397: goto st397 + case 93: + goto st93 + case 94: + goto st94 + case 95: + goto st95 + case 96: + goto st96 + case 97: + goto st97 + case 98: + goto st98 case 398: goto st398 case 399: @@ -977,8 +978,6 @@ func (lex *Lexer) Lex(lval Lval) int { goto st460 case 461: goto st461 - case 96: - goto st96 case 462: goto st462 case 463: @@ -987,8 +986,6 @@ func (lex *Lexer) Lex(lval Lval) int { goto st464 case 465: goto st465 - case 0: - goto st0 case 466: goto st466 case 467: @@ -997,10 +994,10 @@ func (lex *Lexer) Lex(lval Lval) int { goto st468 case 469: goto st469 - case 97: - goto st97 case 470: goto st470 + case 99: + goto st99 case 471: goto st471 case 472: @@ -1009,30 +1006,32 @@ func (lex *Lexer) Lex(lval Lval) int { goto st473 case 474: goto st474 + case 0: + goto st0 case 475: goto st475 - case 98: - goto st98 case 476: goto st476 case 477: goto st477 case 478: goto st478 + case 100: + goto st100 case 479: goto st479 case 480: goto st480 case 481: goto st481 - case 99: - goto st99 case 482: goto st482 case 483: goto st483 case 484: goto st484 + case 101: + goto st101 case 485: goto st485 case 486: @@ -1045,10 +1044,10 @@ func (lex *Lexer) Lex(lval Lval) int { goto st489 case 490: goto st490 + case 102: + goto st102 case 491: goto st491 - case 100: - goto st100 case 492: goto st492 case 493: @@ -1065,12 +1064,10 @@ func (lex *Lexer) Lex(lval Lval) int { goto st498 case 499: goto st499 - case 101: - goto st101 case 500: goto st500 - case 102: - goto st102 + case 103: + goto st103 case 501: goto st501 case 502: @@ -1079,44 +1076,68 @@ func (lex *Lexer) Lex(lval Lval) int { goto st503 case 504: goto st504 - case 103: - goto st103 case 505: goto st505 case 506: goto st506 case 507: goto st507 - case 104: - goto st104 case 508: goto st508 + case 104: + goto st104 + case 105: + goto st105 case 509: goto st509 + case 106: + goto st106 case 510: goto st510 case 511: goto st511 - case 105: - goto st105 case 512: goto st512 case 513: goto st513 + case 107: + goto st107 case 514: goto st514 case 515: goto st515 - case 106: - goto st106 case 516: goto st516 + case 108: + goto st108 case 517: goto st517 case 518: goto st518 case 519: goto st519 + case 520: + goto st520 + case 109: + goto st109 + case 521: + goto st521 + case 522: + goto st522 + case 523: + goto st523 + case 524: + goto st524 + case 110: + goto st110 + case 525: + goto st525 + case 526: + goto st526 + case 527: + goto st527 + case 528: + goto st528 } if (lex.p)++; (lex.p) == (lex.pe) { @@ -1124,58 +1145,44 @@ func (lex *Lexer) Lex(lval Lval) int { } _resume: switch lex.cs { - case 107: - goto st_case_107 - case 108: - goto st_case_108 - case 109: - goto st_case_109 - case 110: - goto st_case_110 case 111: goto st_case_111 case 112: goto st_case_112 case 1: goto st_case_1 - case 2: - goto st_case_2 - case 3: - goto st_case_3 case 113: goto st_case_113 - case 4: - goto st_case_4 case 114: goto st_case_114 case 115: goto st_case_115 case 116: goto st_case_116 - case 5: - goto st_case_5 case 117: goto st_case_117 case 118: goto st_case_118 case 119: goto st_case_119 + case 2: + goto st_case_2 + case 3: + goto st_case_3 + case 4: + goto st_case_4 case 120: goto st_case_120 - case 6: - goto st_case_6 - case 7: - goto st_case_7 - case 8: - goto st_case_8 - case 9: - goto st_case_9 + case 5: + goto st_case_5 case 121: goto st_case_121 case 122: goto st_case_122 case 123: goto st_case_123 + case 6: + goto st_case_6 case 124: goto st_case_124 case 125: @@ -1184,14 +1191,34 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_126 case 127: goto st_case_127 + case 7: + goto st_case_7 + case 8: + goto st_case_8 + case 9: + goto st_case_9 case 10: goto st_case_10 - case 11: - goto st_case_11 case 128: goto st_case_128 + case 129: + goto st_case_129 + case 130: + goto st_case_130 + case 131: + goto st_case_131 + case 132: + goto st_case_132 + case 133: + goto st_case_133 + case 134: + goto st_case_134 + case 11: + goto st_case_11 case 12: goto st_case_12 + case 135: + goto st_case_135 case 13: goto st_case_13 case 14: @@ -1298,104 +1325,94 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_64 case 65: goto st_case_65 - case 129: - goto st_case_129 - case 130: - goto st_case_130 - case 131: - goto st_case_131 - case 132: - goto st_case_132 - case 133: - goto st_case_133 case 66: goto st_case_66 - case 134: - goto st_case_134 - case 67: - goto st_case_67 - case 68: - goto st_case_68 - case 135: - goto st_case_135 case 136: goto st_case_136 - case 69: - goto st_case_69 - case 70: - goto st_case_70 - case 71: - goto st_case_71 case 137: goto st_case_137 case 138: goto st_case_138 - case 72: - goto st_case_72 case 139: goto st_case_139 - case 73: - goto st_case_73 case 140: goto st_case_140 + case 67: + goto st_case_67 case 141: goto st_case_141 + case 68: + goto st_case_68 + case 69: + goto st_case_69 case 142: goto st_case_142 - case 74: - goto st_case_74 - case 75: - goto st_case_75 - case 76: - goto st_case_76 - case 77: - goto st_case_77 + case 70: + goto st_case_70 case 143: goto st_case_143 + case 71: + goto st_case_71 + case 72: + goto st_case_72 + case 73: + goto st_case_73 case 144: goto st_case_144 - case 78: - goto st_case_78 case 145: goto st_case_145 case 146: goto st_case_146 - case 79: - goto st_case_79 - case 80: - goto st_case_80 - case 81: - goto st_case_81 - case 82: - goto st_case_82 + case 74: + goto st_case_74 + case 75: + goto st_case_75 case 147: goto st_case_147 - case 83: - goto st_case_83 - case 84: - goto st_case_84 - case 85: - goto st_case_85 - case 86: - goto st_case_86 + case 76: + goto st_case_76 case 148: goto st_case_148 case 149: goto st_case_149 case 150: goto st_case_150 + case 77: + goto st_case_77 + case 78: + goto st_case_78 + case 79: + goto st_case_79 + case 80: + goto st_case_80 case 151: goto st_case_151 case 152: goto st_case_152 + case 81: + goto st_case_81 case 153: goto st_case_153 case 154: goto st_case_154 + case 82: + goto st_case_82 + case 83: + goto st_case_83 + case 84: + goto st_case_84 + case 85: + goto st_case_85 case 155: goto st_case_155 + case 86: + goto st_case_86 case 87: goto st_case_87 + case 88: + goto st_case_88 + case 89: + goto st_case_89 case 156: goto st_case_156 case 157: @@ -1412,6 +1429,8 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_162 case 163: goto st_case_163 + case 90: + goto st_case_90 case 164: goto st_case_164 case 165: @@ -1422,10 +1441,6 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_167 case 168: goto st_case_168 - case 88: - goto st_case_88 - case 89: - goto st_case_89 case 169: goto st_case_169 case 170: @@ -1444,6 +1459,10 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_176 case 177: goto st_case_177 + case 91: + goto st_case_91 + case 92: + goto st_case_92 case 178: goto st_case_178 case 179: @@ -1866,18 +1885,6 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_387 case 388: goto st_case_388 - case 90: - goto st_case_90 - case 91: - goto st_case_91 - case 92: - goto st_case_92 - case 93: - goto st_case_93 - case 94: - goto st_case_94 - case 95: - goto st_case_95 case 389: goto st_case_389 case 390: @@ -1896,6 +1903,18 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_396 case 397: goto st_case_397 + case 93: + goto st_case_93 + case 94: + goto st_case_94 + case 95: + goto st_case_95 + case 96: + goto st_case_96 + case 97: + goto st_case_97 + case 98: + goto st_case_98 case 398: goto st_case_398 case 399: @@ -2024,8 +2043,6 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_460 case 461: goto st_case_461 - case 96: - goto st_case_96 case 462: goto st_case_462 case 463: @@ -2034,8 +2051,6 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_464 case 465: goto st_case_465 - case 0: - goto st_case_0 case 466: goto st_case_466 case 467: @@ -2044,10 +2059,10 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_468 case 469: goto st_case_469 - case 97: - goto st_case_97 case 470: goto st_case_470 + case 99: + goto st_case_99 case 471: goto st_case_471 case 472: @@ -2056,30 +2071,32 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_473 case 474: goto st_case_474 + case 0: + goto st_case_0 case 475: goto st_case_475 - case 98: - goto st_case_98 case 476: goto st_case_476 case 477: goto st_case_477 case 478: goto st_case_478 + case 100: + goto st_case_100 case 479: goto st_case_479 case 480: goto st_case_480 case 481: goto st_case_481 - case 99: - goto st_case_99 case 482: goto st_case_482 case 483: goto st_case_483 case 484: goto st_case_484 + case 101: + goto st_case_101 case 485: goto st_case_485 case 486: @@ -2092,10 +2109,10 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_489 case 490: goto st_case_490 + case 102: + goto st_case_102 case 491: goto st_case_491 - case 100: - goto st_case_100 case 492: goto st_case_492 case 493: @@ -2112,12 +2129,10 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_498 case 499: goto st_case_499 - case 101: - goto st_case_101 case 500: goto st_case_500 - case 102: - goto st_case_102 + case 103: + goto st_case_103 case 501: goto st_case_501 case 502: @@ -2126,221 +2141,125 @@ func (lex *Lexer) Lex(lval Lval) int { goto st_case_503 case 504: goto st_case_504 - case 103: - goto st_case_103 case 505: goto st_case_505 case 506: goto st_case_506 case 507: goto st_case_507 - case 104: - goto st_case_104 case 508: goto st_case_508 + case 104: + goto st_case_104 + case 105: + goto st_case_105 case 509: goto st_case_509 + case 106: + goto st_case_106 case 510: goto st_case_510 case 511: goto st_case_511 - case 105: - goto st_case_105 case 512: goto st_case_512 case 513: goto st_case_513 + case 107: + goto st_case_107 case 514: goto st_case_514 case 515: goto st_case_515 - case 106: - goto st_case_106 case 516: goto st_case_516 + case 108: + goto st_case_108 case 517: goto st_case_517 case 518: goto st_case_518 case 519: goto st_case_519 + case 520: + goto st_case_520 + case 109: + goto st_case_109 + case 521: + goto st_case_521 + case 522: + goto st_case_522 + case 523: + goto st_case_523 + case 524: + goto st_case_524 + case 110: + goto st_case_110 + case 525: + goto st_case_525 + case 526: + goto st_case_526 + case 527: + goto st_case_527 + case 528: + goto st_case_528 } goto st_out tr0: - lex.cs = 107 -//line scanner/scanner.rl:141 + lex.cs = 111 +//line scanner/scanner.rl:140 (lex.p) = (lex.te) - 1 { - lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) lex.cs = 114 + lex.ungetCnt(1) } goto _again - tr3: - lex.cs = 107 -//line scanner/scanner.rl:145 + tr162: + lex.cs = 111 +//line scanner/scanner.rl:140 lex.te = (lex.p) + 1 { - lex.ungetCnt(lex.te - lex.ts - 5) - lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.ts+5) lex.cs = 114 + lex.ungetCnt(1) } goto _again - tr158: -//line scanner/scanner.rl:135 + tr164: + lex.cs = 111 +//line scanner/scanner.rl:140 lex.te = (lex.p) (lex.p)-- { - lex.ungetStr("<") - lex.setTokenPosition(token) - tok = T_INLINE_HTML - { - (lex.p)++ - lex.cs = 107 - goto _out - } + lex.cs = 114 + lex.ungetCnt(1) } - goto st107 - tr160: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:135 - lex.te = (lex.p) - (lex.p)-- - { - lex.ungetStr("<") - lex.setTokenPosition(token) - tok = T_INLINE_HTML - { - (lex.p)++ - lex.cs = 107 - goto _out - } - } - goto st107 + goto _again tr165: - lex.cs = 107 -//line scanner/scanner.rl:141 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) - lex.cs = 114 - } - goto _again - tr166: - lex.cs = 107 -//line scanner/scanner.rl:150 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = T_ECHO - lex.cs = 114 - { - (lex.p)++ - goto _out - } - } - goto _again - tr168: - lex.cs = 107 -//line scanner/scanner.rl:64 +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:145 +//line scanner/scanner.rl:137 lex.te = (lex.p) (lex.p)-- { - lex.ungetCnt(lex.te - lex.ts - 5) - lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.ts+5) - lex.cs = 114 + lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) } - goto _again - st107: + goto st111 + st111: //line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof107 + goto _test_eof111 } - st_case_107: + st_case_111: //line NONE:1 lex.ts = (lex.p) //line scanner/scanner.go:2263 - switch lex.data[(lex.p)] { - case 10: - goto st109 - case 60: - goto st111 - } - goto st108 - tr161: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st108 - st108: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof108 - } - st_case_108: -//line scanner/scanner.go:2280 - switch lex.data[(lex.p)] { - case 10: - goto st109 - case 60: - goto st110 - } - goto st108 - tr162: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st109 - st109: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof109 - } - st_case_109: -//line scanner/scanner.go:2297 - switch lex.data[(lex.p)] { - case 10: - goto tr162 - case 60: + if lex.data[(lex.p)] == 35 { goto tr163 } - goto tr161 + goto tr162 tr163: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st110 - st110: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof110 - } - st_case_110: -//line scanner/scanner.go:2314 - switch lex.data[(lex.p)] { - case 10: - goto st109 - case 60: - goto st110 - case 63: - goto tr158 - } - goto st108 - st111: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof111 - } - st_case_111: - switch lex.data[(lex.p)] { - case 10: - goto st109 - case 60: - goto st110 - case 63: - goto tr164 - } - goto st108 - tr164: //line NONE:1 lex.te = (lex.p) + 1 @@ -2350,83 +2269,287 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof112 } st_case_112: -//line scanner/scanner.go:2348 - switch lex.data[(lex.p)] { - case 61: - goto tr166 - case 80: - goto st1 - case 112: +//line scanner/scanner.go:2278 + if lex.data[(lex.p)] == 33 { goto st1 } - goto tr165 + goto tr164 st1: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof1 } st_case_1: + if lex.data[(lex.p)] == 10 { + goto st113 + } + goto st1 + st113: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof113 + } + st_case_113: + goto tr165 + tr3: + lex.cs = 114 +//line scanner/scanner.rl:153 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) + lex.cs = 121 + } + goto _again + tr6: + lex.cs = 114 +//line scanner/scanner.rl:157 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(lex.te - lex.ts - 5) + lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.ts+5) + lex.cs = 121 + } + goto _again + tr169: +//line scanner/scanner.rl:147 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetStr("<") + lex.setTokenPosition(token) + tok = T_INLINE_HTML + { + (lex.p)++ + lex.cs = 114 + goto _out + } + } + goto st114 + tr171: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:147 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetStr("<") + lex.setTokenPosition(token) + tok = T_INLINE_HTML + { + (lex.p)++ + lex.cs = 114 + goto _out + } + } + goto st114 + tr176: + lex.cs = 114 +//line scanner/scanner.rl:153 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) + lex.cs = 121 + } + goto _again + tr177: + lex.cs = 114 +//line scanner/scanner.rl:162 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_ECHO + lex.cs = 121 + { + (lex.p)++ + goto _out + } + } + goto _again + tr179: + lex.cs = 114 +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:157 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(lex.te - lex.ts - 5) + lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.ts+5) + lex.cs = 121 + } + goto _again + st114: +//line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof114 + } + st_case_114: +//line NONE:1 + lex.ts = (lex.p) + +//line scanner/scanner.go:2386 switch lex.data[(lex.p)] { - case 72: + case 10: + goto st116 + case 60: + goto st118 + } + goto st115 + tr172: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st115 + st115: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof115 + } + st_case_115: +//line scanner/scanner.go:2403 + switch lex.data[(lex.p)] { + case 10: + goto st116 + case 60: + goto st117 + } + goto st115 + tr173: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st116 + st116: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof116 + } + st_case_116: +//line scanner/scanner.go:2420 + switch lex.data[(lex.p)] { + case 10: + goto tr173 + case 60: + goto tr174 + } + goto tr172 + tr174: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st117 + st117: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof117 + } + st_case_117: +//line scanner/scanner.go:2437 + switch lex.data[(lex.p)] { + case 10: + goto st116 + case 60: + goto st117 + case 63: + goto tr169 + } + goto st115 + st118: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof118 + } + st_case_118: + switch lex.data[(lex.p)] { + case 10: + goto st116 + case 60: + goto st117 + case 63: + goto tr175 + } + goto st115 + tr175: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st119 + st119: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof119 + } + st_case_119: +//line scanner/scanner.go:2471 + switch lex.data[(lex.p)] { + case 61: + goto tr177 + case 80: goto st2 - case 104: + case 112: goto st2 } - goto tr0 + goto tr176 st2: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof2 } st_case_2: switch lex.data[(lex.p)] { - case 80: + case 72: goto st3 - case 112: + case 104: goto st3 } - goto tr0 + goto tr3 st3: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof3 } st_case_3: switch lex.data[(lex.p)] { - case 9: - goto tr3 - case 10: - goto st113 - case 13: + case 80: + goto st4 + case 112: goto st4 - case 32: - goto tr3 } - goto tr0 - st113: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof113 - } - st_case_113: - goto tr168 + goto tr3 st4: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof4 } st_case_4: - if lex.data[(lex.p)] == 10 { - goto st113 + switch lex.data[(lex.p)] { + case 9: + goto tr6 + case 10: + goto st120 + case 13: + goto st5 + case 32: + goto tr6 } - goto tr0 - tr6: -//line scanner/scanner.rl:159 + goto tr3 + st120: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof120 + } + st_case_120: + goto tr179 + st5: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof5 + } + st_case_5: + if lex.data[(lex.p)] == 10 { + goto st120 + } + goto tr3 + tr9: +//line scanner/scanner.rl:171 (lex.p) = (lex.te) - 1 { lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) } - goto st114 - tr8: - lex.cs = 114 + goto st121 + tr11: + lex.cs = 121 //line NONE:1 switch lex.act { - case 8: + case 10: { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) @@ -2436,11 +2559,14 @@ func (lex *Lexer) Lex(lval Lval) int { goto _out } } - case 10: + case 11: { (lex.p) = (lex.te) - 1 - if lex.te-lex.ts < 20 { + s := strings.Replace(string(lex.data[lex.ts+2:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, 2, 0) + + if err == nil { lex.setTokenPosition(token) tok = T_LNUMBER { @@ -2448,6 +2574,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _out } } + lex.setTokenPosition(token) tok = T_DNUMBER { @@ -2458,8 +2585,26 @@ func (lex *Lexer) Lex(lval Lval) int { case 12: { (lex.p) = (lex.te) - 1 + + base := 10 + if lex.data[lex.ts] == '0' { + base = 8 + } + + s := strings.Replace(string(lex.data[lex.ts:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, base, 0) + + if err == nil { + lex.setTokenPosition(token) + tok = T_LNUMBER + { + (lex.p)++ + goto _out + } + } + lex.setTokenPosition(token) - tok = T_ABSTRACT + tok = T_DNUMBER { (lex.p)++ goto _out @@ -2468,8 +2613,21 @@ func (lex *Lexer) Lex(lval Lval) int { case 13: { (lex.p) = (lex.te) - 1 + + s := strings.Replace(string(lex.data[lex.ts+2:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, 16, 0) + + if err == nil { + lex.setTokenPosition(token) + tok = T_LNUMBER + { + (lex.p)++ + goto _out + } + } + lex.setTokenPosition(token) - tok = T_ARRAY + tok = T_DNUMBER { (lex.p)++ goto _out @@ -2479,7 +2637,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_AS + tok = T_ABSTRACT { (lex.p)++ goto _out @@ -2489,7 +2647,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_BREAK + tok = T_ARRAY { (lex.p)++ goto _out @@ -2499,7 +2657,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_CALLABLE + tok = T_AS { (lex.p)++ goto _out @@ -2509,7 +2667,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_CASE + tok = T_BREAK { (lex.p)++ goto _out @@ -2519,7 +2677,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_CATCH + tok = T_CALLABLE { (lex.p)++ goto _out @@ -2529,7 +2687,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_CLASS + tok = T_CASE { (lex.p)++ goto _out @@ -2539,7 +2697,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_CLONE + tok = T_CATCH { (lex.p)++ goto _out @@ -2549,7 +2707,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_CONST + tok = T_CLASS { (lex.p)++ goto _out @@ -2559,7 +2717,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_CONTINUE + tok = T_CLONE { (lex.p)++ goto _out @@ -2569,7 +2727,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_DECLARE + tok = T_CONST { (lex.p)++ goto _out @@ -2579,7 +2737,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_DEFAULT + tok = T_CONTINUE { (lex.p)++ goto _out @@ -2589,7 +2747,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_DO + tok = T_DECLARE { (lex.p)++ goto _out @@ -2599,7 +2757,17 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_ECHO + tok = T_DEFAULT + { + (lex.p)++ + goto _out + } + } + case 27: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_DO { (lex.p)++ goto _out @@ -2609,17 +2777,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_ELSEIF - { - (lex.p)++ - goto _out - } - } - case 29: - { - (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_EMPTY + tok = T_ECHO { (lex.p)++ goto _out @@ -2629,7 +2787,17 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_ENDDECLARE + tok = T_ELSEIF + { + (lex.p)++ + goto _out + } + } + case 31: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_EMPTY { (lex.p)++ goto _out @@ -2639,17 +2807,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_ENDFOREACH - { - (lex.p)++ - goto _out - } - } - case 33: - { - (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENDIF + tok = T_ENDDECLARE { (lex.p)++ goto _out @@ -2659,7 +2817,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_ENDSWITCH + tok = T_ENDFOREACH { (lex.p)++ goto _out @@ -2669,7 +2827,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_ENDWHILE + tok = T_ENDIF { (lex.p)++ goto _out @@ -2679,7 +2837,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_EVAL + tok = T_ENDSWITCH { (lex.p)++ goto _out @@ -2689,7 +2847,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_EXIT + tok = T_ENDWHILE { (lex.p)++ goto _out @@ -2699,7 +2857,17 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_EXTENDS + tok = T_EVAL + { + (lex.p)++ + goto _out + } + } + case 39: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_EXIT { (lex.p)++ goto _out @@ -2709,7 +2877,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_FINALLY + tok = T_EXTENDS { (lex.p)++ goto _out @@ -2719,17 +2887,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_FOREACH - { - (lex.p)++ - goto _out - } - } - case 43: - { - (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_FUNCTION + tok = T_FINALLY { (lex.p)++ goto _out @@ -2739,7 +2897,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_GLOBAL + tok = T_FOREACH { (lex.p)++ goto _out @@ -2749,7 +2907,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_GOTO + tok = T_FUNCTION { (lex.p)++ goto _out @@ -2759,7 +2917,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_IF + tok = T_FN { (lex.p)++ goto _out @@ -2769,7 +2927,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_ISSET + tok = T_GLOBAL { (lex.p)++ goto _out @@ -2779,7 +2937,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_IMPLEMENTS + tok = T_GOTO { (lex.p)++ goto _out @@ -2789,7 +2947,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_INSTANCEOF + tok = T_IF { (lex.p)++ goto _out @@ -2799,7 +2957,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_INSTEADOF + tok = T_ISSET { (lex.p)++ goto _out @@ -2809,7 +2967,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_INTERFACE + tok = T_IMPLEMENTS { (lex.p)++ goto _out @@ -2819,7 +2977,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_LIST + tok = T_INSTANCEOF { (lex.p)++ goto _out @@ -2829,7 +2987,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_NAMESPACE + tok = T_INSTEADOF { (lex.p)++ goto _out @@ -2839,7 +2997,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_PRIVATE + tok = T_INTERFACE { (lex.p)++ goto _out @@ -2849,7 +3007,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_PUBLIC + tok = T_LIST { (lex.p)++ goto _out @@ -2859,7 +3017,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_PRINT + tok = T_NAMESPACE { (lex.p)++ goto _out @@ -2869,7 +3027,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_PROTECTED + tok = T_PRIVATE { (lex.p)++ goto _out @@ -2879,7 +3037,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_RETURN + tok = T_PUBLIC { (lex.p)++ goto _out @@ -2889,7 +3047,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_STATIC + tok = T_PRINT { (lex.p)++ goto _out @@ -2899,7 +3057,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_SWITCH + tok = T_PROTECTED { (lex.p)++ goto _out @@ -2909,7 +3067,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_THROW + tok = T_RETURN { (lex.p)++ goto _out @@ -2919,7 +3077,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_TRAIT + tok = T_STATIC { (lex.p)++ goto _out @@ -2929,7 +3087,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_TRY + tok = T_SWITCH { (lex.p)++ goto _out @@ -2939,7 +3097,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_UNSET + tok = T_THROW { (lex.p)++ goto _out @@ -2949,7 +3107,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_USE + tok = T_TRAIT { (lex.p)++ goto _out @@ -2959,7 +3117,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_VAR + tok = T_TRY { (lex.p)++ goto _out @@ -2969,7 +3127,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_WHILE + tok = T_UNSET { (lex.p)++ goto _out @@ -2979,7 +3137,27 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_YIELD_FROM + tok = T_USE + { + (lex.p)++ + goto _out + } + } + case 69: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_VAR + { + (lex.p)++ + goto _out + } + } + case 70: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_WHILE { (lex.p)++ goto _out @@ -2989,17 +3167,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_INCLUDE_ONCE - { - (lex.p)++ - goto _out - } - } - case 73: - { - (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_REQUIRE_ONCE + tok = T_YIELD_FROM { (lex.p)++ goto _out @@ -3009,17 +3177,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_CLASS_C - { - (lex.p)++ - goto _out - } - } - case 75: - { - (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DIR + tok = T_INCLUDE_ONCE { (lex.p)++ goto _out @@ -3029,7 +3187,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_FILE + tok = T_REQUIRE_ONCE { (lex.p)++ goto _out @@ -3039,7 +3197,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_FUNC_C + tok = T_CLASS_C { (lex.p)++ goto _out @@ -3049,7 +3207,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_LINE + tok = T_DIR { (lex.p)++ goto _out @@ -3059,7 +3217,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_NS_C + tok = T_FILE { (lex.p)++ goto _out @@ -3069,7 +3227,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_METHOD_C + tok = T_FUNC_C { (lex.p)++ goto _out @@ -3079,7 +3237,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_TRAIT_C + tok = T_LINE { (lex.p)++ goto _out @@ -3089,8 +3247,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_HALT_COMPILER - lex.cs = 505 + tok = T_NS_C { (lex.p)++ goto _out @@ -3100,7 +3257,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_NEW + tok = T_METHOD_C { (lex.p)++ goto _out @@ -3110,7 +3267,7 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_LOGICAL_AND + tok = T_TRAIT_C { (lex.p)++ goto _out @@ -3120,13 +3277,44 @@ func (lex *Lexer) Lex(lval Lval) int { { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) - tok = T_LOGICAL_OR + tok = T_HALT_COMPILER + lex.cs = 514 { (lex.p)++ goto _out } } case 86: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_NEW + { + (lex.p)++ + goto _out + } + } + case 87: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_LOGICAL_AND + { + (lex.p)++ + goto _out + } + } + case 88: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_LOGICAL_OR + { + (lex.p)++ + goto _out + } + } + case 89: { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) @@ -3136,7 +3324,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _out } } - case 115: + case 118: { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) @@ -3146,7 +3334,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _out } } - case 131: + case 135: { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) @@ -3156,12 +3344,12 @@ func (lex *Lexer) Lex(lval Lval) int { goto _out } } - case 136: + case 140: { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) tok = TokenID(int('"')) - lex.cs = 480 + lex.cs = 489 { (lex.p)++ goto _out @@ -3170,29 +3358,29 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again - tr11: -//line scanner/scanner.rl:344 + tr14: +//line scanner/scanner.rl:360 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_CONSTANT_ENCAPSED_STRING { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr15: -//line scanner/scanner.rl:367 + goto st121 + tr18: +//line scanner/scanner.rl:383 (lex.p) = (lex.te) - 1 { c := lex.data[lex.p] lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } - goto st114 - tr19: -//line scanner/scanner.rl:329 + goto st121 + tr22: +//line scanner/scanner.rl:345 (lex.p) = (lex.te) - 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3201,117 +3389,130 @@ func (lex *Lexer) Lex(lval Lval) int { tok = TokenID(int(lex.data[lex.ts])) { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr34: -//line scanner/scanner.rl:305 + goto st121 + tr37: +//line scanner/scanner.rl:321 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_ARRAY_CAST { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr41: -//line scanner/scanner.rl:310 + goto st121 + tr44: +//line scanner/scanner.rl:326 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_STRING_CAST { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr45: -//line scanner/scanner.rl:306 + goto st121 + tr48: +//line scanner/scanner.rl:322 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_BOOL_CAST { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr53: -//line scanner/scanner.rl:307 + goto st121 + tr56: +//line scanner/scanner.rl:323 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_DOUBLE_CAST { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr60: -//line scanner/scanner.rl:308 + goto st121 + tr63: +//line scanner/scanner.rl:324 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_INT_CAST { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr69: -//line scanner/scanner.rl:309 + goto st121 + tr72: +//line scanner/scanner.rl:325 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_OBJECT_CAST { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr80: -//line scanner/scanner.rl:311 + goto st121 + tr83: +//line scanner/scanner.rl:327 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_UNSET_CAST { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr81: -//line scanner/scanner.rl:274 + goto st121 + tr84: +//line scanner/scanner.rl:289 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_ELLIPSIS { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr90: -//line scanner/scanner.rl:317 + goto st121 + tr87: +//line scanner/scanner.rl:175 + (lex.p) = (lex.te) - 1 + { + lex.setTokenPosition(token) + tok = T_DNUMBER + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr95: +//line scanner/scanner.rl:333 lex.te = (lex.p) + 1 { isDocComment := false @@ -3324,106 +3525,115 @@ func (lex *Lexer) Lex(lval Lval) int { lex.PhpDocComment = string(lex.data[lex.ts:lex.te]) } } - goto st114 - tr91: -//line scanner/scanner.rl:177 + goto st121 + tr96: +//line scanner/scanner.rl:186 (lex.p) = (lex.te) - 1 { - if lex.te-lex.ts < 20 { + base := 10 + if lex.data[lex.ts] == '0' { + base = 8 + } + + s := strings.Replace(string(lex.data[lex.ts:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, base, 0) + + if err == nil { lex.setTokenPosition(token) tok = T_LNUMBER { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } + lex.setTokenPosition(token) tok = T_DNUMBER { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr103: - lex.cs = 114 -//line scanner/scanner.rl:161 + goto st121 + tr109: + lex.cs = 121 +//line scanner/scanner.rl:173 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) tok = TokenID(int(';')) - lex.cs = 107 + lex.cs = 114 { (lex.p)++ goto _out } } goto _again - tr119: - lex.cs = 114 -//line scanner/scanner.rl:160 + tr125: + lex.cs = 121 +//line scanner/scanner.rl:172 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) tok = TokenID(int(';')) - lex.cs = 107 + lex.cs = 114 { (lex.p)++ goto _out } } goto _again - tr121: -//line scanner/scanner.rl:340 + tr127: +//line scanner/scanner.rl:356 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) tok = T_STRING { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr123: -//line scanner/scanner.rl:255 + goto st121 + tr129: +//line scanner/scanner.rl:270 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) tok = T_YIELD { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr134: -//line scanner/scanner.rl:254 + goto st121 + tr140: +//line scanner/scanner.rl:269 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_YIELD_FROM { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr169: -//line scanner/scanner.rl:367 + goto st121 + tr180: +//line scanner/scanner.rl:383 lex.te = (lex.p) + 1 { c := lex.data[lex.p] lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } - goto st114 - tr180: -//line scanner/scanner.rl:329 + goto st121 + tr191: +//line scanner/scanner.rl:345 lex.te = (lex.p) + 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3432,50 +3642,50 @@ func (lex *Lexer) Lex(lval Lval) int { tok = TokenID(int(lex.data[lex.ts])) { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr215: -//line scanner/scanner.rl:273 + goto st121 + tr225: +//line scanner/scanner.rl:288 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_NS_SEPARATOR { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr218: - lex.cs = 114 -//line scanner/scanner.rl:364 + goto st121 + tr228: + lex.cs = 121 +//line scanner/scanner.rl:380 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = TokenID(int('`')) - lex.cs = 474 + lex.cs = 483 { (lex.p)++ goto _out } } goto _again - tr219: -//line scanner/scanner.rl:337 + tr229: +//line scanner/scanner.rl:353 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = TokenID(int('{')) - lex.call(114, 114) + lex.call(121, 121) goto _out } - goto st114 - tr221: -//line scanner/scanner.rl:338 + goto st121 + tr231: +//line scanner/scanner.rl:354 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3484,36 +3694,36 @@ func (lex *Lexer) Lex(lval Lval) int { lex.PhpDocComment = "" goto _out } - goto st114 - tr222: -//line scanner/scanner.rl:159 + goto st121 + tr232: +//line scanner/scanner.rl:171 lex.te = (lex.p) (lex.p)-- { lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) } - goto st114 - tr224: -//line scanner/scanner.rl:64 + goto st121 + tr234: +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:159 +//line scanner/scanner.rl:171 lex.te = (lex.p) (lex.p)-- { lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) } - goto st114 - tr228: -//line scanner/scanner.rl:367 + goto st121 + tr238: +//line scanner/scanner.rl:383 lex.te = (lex.p) (lex.p)-- { c := lex.data[lex.p] lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } - goto st114 - tr229: -//line scanner/scanner.rl:329 + goto st121 + tr239: +//line scanner/scanner.rl:345 lex.te = (lex.p) (lex.p)-- { @@ -3523,13 +3733,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = TokenID(int(lex.data[lex.ts])) { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr231: -//line scanner/scanner.rl:292 + goto st121 + tr241: +//line scanner/scanner.rl:307 lex.te = (lex.p) (lex.p)-- { @@ -3537,61 +3747,61 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_IS_NOT_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr232: -//line scanner/scanner.rl:293 + goto st121 + tr242: +//line scanner/scanner.rl:308 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_IS_NOT_IDENTICAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr233: - lex.cs = 114 -//line scanner/scanner.rl:365 + goto st121 + tr243: + lex.cs = 121 +//line scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { lex.setTokenPosition(token) tok = TokenID(int('"')) - lex.cs = 480 + lex.cs = 489 { (lex.p)++ goto _out } } goto _again - tr234: -//line scanner/scanner.rl:313 + tr244: +//line scanner/scanner.rl:329 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) } - goto st114 - tr236: -//line scanner/scanner.rl:64 + goto st121 + tr246: +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:313 +//line scanner/scanner.rl:329 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) } - goto st114 - tr240: -//line scanner/scanner.rl:339 + goto st121 + tr250: +//line scanner/scanner.rl:355 lex.te = (lex.p) (lex.p)-- { @@ -3599,65 +3809,65 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_VARIABLE { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr241: -//line scanner/scanner.rl:287 + goto st121 + tr251: +//line scanner/scanner.rl:302 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_MOD_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr242: -//line scanner/scanner.rl:276 + goto st121 + tr252: +//line scanner/scanner.rl:291 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_BOOLEAN_AND { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr243: -//line scanner/scanner.rl:278 + goto st121 + tr253: +//line scanner/scanner.rl:293 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_AND_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr245: -//line scanner/scanner.rl:281 + goto st121 + tr255: +//line scanner/scanner.rl:296 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_MUL_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr246: -//line scanner/scanner.rl:300 + goto st121 + tr256: +//line scanner/scanner.rl:315 lex.te = (lex.p) (lex.p)-- { @@ -3665,105 +3875,105 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_POW { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr247: -//line scanner/scanner.rl:282 + goto st121 + tr257: +//line scanner/scanner.rl:297 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_POW_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr248: -//line scanner/scanner.rl:289 + goto st121 + tr258: +//line scanner/scanner.rl:304 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_INC { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr249: -//line scanner/scanner.rl:284 + goto st121 + tr259: +//line scanner/scanner.rl:299 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_PLUS_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr250: -//line scanner/scanner.rl:288 + goto st121 + tr260: +//line scanner/scanner.rl:303 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_DEC { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr251: -//line scanner/scanner.rl:285 + goto st121 + tr261: +//line scanner/scanner.rl:300 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_MINUS_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr252: - lex.cs = 114 -//line scanner/scanner.rl:342 + goto st121 + tr262: + lex.cs = 121 +//line scanner/scanner.rl:358 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_OBJECT_OPERATOR - lex.cs = 459 + lex.cs = 468 { (lex.p)++ goto _out } } goto _again - tr255: -//line scanner/scanner.rl:280 + tr264: +//line scanner/scanner.rl:295 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_CONCAT_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr256: -//line scanner/scanner.rl:163 + goto st121 + tr265: +//line scanner/scanner.rl:175 lex.te = (lex.p) (lex.p)-- { @@ -3771,168 +3981,170 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_DNUMBER { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr258: -//line scanner/scanner.rl:283 + goto st121 + tr268: +//line scanner/scanner.rl:298 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_DIV_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr259: -//line scanner/scanner.rl:177 + goto st121 + tr269: +//line scanner/scanner.rl:186 lex.te = (lex.p) (lex.p)-- { - if lex.te-lex.ts < 20 { + base := 10 + if lex.data[lex.ts] == '0' { + base = 8 + } + + s := strings.Replace(string(lex.data[lex.ts:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, base, 0) + + if err == nil { lex.setTokenPosition(token) tok = T_LNUMBER { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - lex.setTokenPosition(token) - tok = T_DNUMBER - { - (lex.p)++ - lex.cs = 114 - goto _out - } - } - goto st114 - tr262: -//line scanner/scanner.rl:164 - lex.te = (lex.p) - (lex.p)-- - { - firstNum := 2 - for i := lex.ts + 2; i < lex.te; i++ { - if lex.data[i] == '0' { - firstNum++ - } - } - if lex.te-lex.ts-firstNum < 64 { - lex.setTokenPosition(token) - tok = T_LNUMBER - { - (lex.p)++ - lex.cs = 114 - goto _out - } - } lex.setTokenPosition(token) tok = T_DNUMBER { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr263: -//line scanner/scanner.rl:183 + goto st121 + tr274: +//line scanner/scanner.rl:176 lex.te = (lex.p) (lex.p)-- { - firstNum := lex.ts + 2 - for i := lex.ts + 2; i < lex.te; i++ { - if lex.data[i] == '0' { - firstNum++ - } - } + s := strings.Replace(string(lex.data[lex.ts+2:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, 2, 0) - length := lex.te - firstNum - if length < 16 || (length == 16 && lex.data[firstNum] <= '7') { + if err == nil { lex.setTokenPosition(token) tok = T_LNUMBER { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } + lex.setTokenPosition(token) tok = T_DNUMBER { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr264: -//line scanner/scanner.rl:275 + goto st121 + tr275: +//line scanner/scanner.rl:201 + lex.te = (lex.p) + (lex.p)-- + { + s := strings.Replace(string(lex.data[lex.ts+2:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, 16, 0) + + if err == nil { + lex.setTokenPosition(token) + tok = T_LNUMBER + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + + lex.setTokenPosition(token) + tok = T_DNUMBER + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr276: +//line scanner/scanner.rl:290 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_PAAMAYIM_NEKUDOTAYIM { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr265: - lex.cs = 114 -//line scanner/scanner.rl:161 + goto st121 + tr277: + lex.cs = 121 +//line scanner/scanner.rl:173 lex.te = (lex.p) (lex.p)-- { lex.setTokenPosition(token) tok = TokenID(int(';')) - lex.cs = 107 + lex.cs = 114 { (lex.p)++ goto _out } } goto _again - tr267: - lex.cs = 114 -//line scanner/scanner.rl:64 + tr279: + lex.cs = 121 +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:161 +//line scanner/scanner.rl:173 lex.te = (lex.p) (lex.p)-- { lex.setTokenPosition(token) tok = TokenID(int(';')) - lex.cs = 107 + lex.cs = 114 { (lex.p)++ goto _out } } goto _again - tr270: -//line scanner/scanner.rl:292 + tr282: +//line scanner/scanner.rl:307 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_IS_NOT_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr271: -//line scanner/scanner.rl:301 + goto st121 + tr283: +//line scanner/scanner.rl:316 lex.te = (lex.p) (lex.p)-- { @@ -3940,29 +4152,29 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_SL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr272: -//line scanner/scanner.rl:296 + goto st121 + tr284: +//line scanner/scanner.rl:311 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_SL_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr273: - lex.cs = 114 -//line scanner/scanner.rl:64 + goto st121 + tr285: + lex.cs = 121 +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:350 +//line scanner/scanner.rl:366 lex.te = (lex.p) (lex.p)-- { @@ -3971,11 +4183,11 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_START_HEREDOC if lex.isHeredocEnd(lex.p + 1) { - lex.cs = 486 + lex.cs = 495 } else if lex.data[lblStart-1] == '\'' { - lex.cs = 465 + lex.cs = 474 } else { - lex.cs = 468 + lex.cs = 477 } { (lex.p)++ @@ -3983,8 +4195,8 @@ func (lex *Lexer) Lex(lval Lval) int { } } goto _again - tr274: -//line scanner/scanner.rl:299 + tr286: +//line scanner/scanner.rl:314 lex.te = (lex.p) (lex.p)-- { @@ -3992,39 +4204,39 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_IS_SMALLER_OR_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr275: -//line scanner/scanner.rl:291 + goto st121 + tr287: +//line scanner/scanner.rl:306 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_SPACESHIP { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr277: -//line scanner/scanner.rl:290 + goto st121 + tr289: +//line scanner/scanner.rl:305 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_DOUBLE_ARROW { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr278: -//line scanner/scanner.rl:294 + goto st121 + tr290: +//line scanner/scanner.rl:309 lex.te = (lex.p) (lex.p)-- { @@ -4032,39 +4244,39 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_IS_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr279: -//line scanner/scanner.rl:295 + goto st121 + tr291: +//line scanner/scanner.rl:310 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_IS_IDENTICAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr280: -//line scanner/scanner.rl:298 + goto st121 + tr292: +//line scanner/scanner.rl:313 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_IS_GREATER_OR_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr282: -//line scanner/scanner.rl:302 + goto st121 + tr294: +//line scanner/scanner.rl:317 lex.te = (lex.p) (lex.p)-- { @@ -4072,71 +4284,85 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_SR { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr283: -//line scanner/scanner.rl:297 + goto st121 + tr295: +//line scanner/scanner.rl:312 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_SR_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr285: -//line scanner/scanner.rl:303 - lex.te = (lex.p) + 1 + goto st121 + tr298: + lex.cs = 121 +//line scanner/scanner.rl:172 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = TokenID(int(';')) + lex.cs = 114 + { + (lex.p)++ + goto _out + } + } + goto _again + tr300: + lex.cs = 121 +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:172 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = TokenID(int(';')) + lex.cs = 114 + { + (lex.p)++ + goto _out + } + } + goto _again + tr301: +//line scanner/scanner.rl:318 + lex.te = (lex.p) + (lex.p)-- { lex.setTokenPosition(token) tok = T_COALESCE { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr286: - lex.cs = 114 -//line scanner/scanner.rl:160 - lex.te = (lex.p) - (lex.p)-- + goto st121 + tr302: +//line scanner/scanner.rl:319 + lex.te = (lex.p) + 1 { lex.setTokenPosition(token) - tok = TokenID(int(';')) - lex.cs = 107 + tok = T_COALESCE_EQUAL { (lex.p)++ + lex.cs = 121 goto _out } } - goto _again - tr288: - lex.cs = 114 -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:160 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = TokenID(int(';')) - lex.cs = 107 - { - (lex.p)++ - goto _out - } - } - goto _again - tr289: -//line scanner/scanner.rl:340 + goto st121 + tr303: +//line scanner/scanner.rl:356 lex.te = (lex.p) (lex.p)-- { @@ -4144,13 +4370,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_STRING { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr369: -//line scanner/scanner.rl:213 + goto st121 + tr383: +//line scanner/scanner.rl:227 lex.te = (lex.p) (lex.p)-- { @@ -4158,13 +4384,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_ELSE { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr389: -//line scanner/scanner.rl:217 + goto st121 + tr403: +//line scanner/scanner.rl:231 lex.te = (lex.p) (lex.p)-- { @@ -4172,13 +4398,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_ENDFOR { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr417: -//line scanner/scanner.rl:225 + goto st121 + tr432: +//line scanner/scanner.rl:239 lex.te = (lex.p) (lex.p)-- { @@ -4186,13 +4412,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_FINAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr421: -//line scanner/scanner.rl:227 + goto st121 + tr436: +//line scanner/scanner.rl:241 lex.te = (lex.p) (lex.p)-- { @@ -4200,13 +4426,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_FOR { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr453: -//line scanner/scanner.rl:256 + goto st121 + tr468: +//line scanner/scanner.rl:271 lex.te = (lex.p) (lex.p)-- { @@ -4214,13 +4440,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_INCLUDE { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr521: -//line scanner/scanner.rl:258 + goto st121 + tr536: +//line scanner/scanner.rl:273 lex.te = (lex.p) (lex.p)-- { @@ -4228,13 +4454,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_REQUIRE { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr567: -//line scanner/scanner.rl:255 + goto st121 + tr582: +//line scanner/scanner.rl:270 lex.te = (lex.p) (lex.p)-- { @@ -4242,514 +4468,247 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_YIELD { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr572: -//line scanner/scanner.rl:286 + goto st121 + tr587: +//line scanner/scanner.rl:301 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_XOR_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr646: -//line scanner/scanner.rl:279 + goto st121 + tr661: +//line scanner/scanner.rl:294 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_OR_EQUAL { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - tr647: -//line scanner/scanner.rl:277 + goto st121 + tr662: +//line scanner/scanner.rl:292 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_BOOLEAN_OR { (lex.p)++ - lex.cs = 114 + lex.cs = 121 goto _out } } - goto st114 - st114: + goto st121 + st121: //line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof114 + goto _test_eof121 } - st_case_114: + st_case_121: //line NONE:1 lex.ts = (lex.p) -//line scanner/scanner.go:3206 +//line scanner/scanner.go:3387 switch lex.data[(lex.p)] { case 10: - goto tr7 + goto tr10 case 13: - goto st117 + goto st124 case 32: - goto tr170 + goto tr181 case 33: - goto st118 - case 34: - goto tr173 - case 35: - goto st121 - case 36: - goto st123 - case 37: goto st125 - case 38: - goto st126 - case 39: - goto tr178 - case 40: - goto tr179 - case 42: - goto st129 - case 43: - goto st131 - case 45: - goto st132 - case 46: + case 34: goto tr184 - case 47: - goto tr185 - case 48: - goto tr186 - case 58: - goto st141 - case 59: + case 35: + goto st128 + case 36: + goto st130 + case 37: + goto st132 + case 38: + goto st133 + case 39: goto tr189 - case 60: - goto st145 - case 61: + case 40: + goto tr190 + case 42: + goto st136 + case 43: + goto st138 + case 45: + goto st139 + case 46: + goto tr195 + case 47: + goto tr196 + case 48: + goto tr197 + case 58: goto st149 - case 62: - goto st151 - case 63: + case 59: + goto tr199 + case 60: goto st153 + case 61: + goto st157 + case 62: + goto st159 + case 63: + goto st161 case 64: - goto tr180 + goto tr191 case 65: - goto st156 + goto st165 case 66: - goto tr195 + goto tr205 case 67: - goto st172 + goto st181 case 68: - goto st201 + goto st210 case 69: - goto st212 + goto st221 case 70: - goto st254 + goto st263 case 71: - goto st265 + goto st274 case 73: - goto st272 + goto st281 case 76: - goto st311 + goto st320 case 78: - goto st314 + goto st323 case 79: - goto st323 + goto st332 case 80: - goto st324 + goto st333 case 82: - goto st341 + goto st350 case 83: - goto st355 + goto st364 case 84: - goto st364 + goto st373 case 85: - goto st371 + goto st380 case 86: - goto st376 + goto st385 case 87: - goto st378 + goto st387 case 88: - goto st382 + goto st391 case 89: - goto st384 - case 92: - goto tr215 - case 94: - goto st392 - case 95: goto st393 + case 92: + goto tr225 + case 94: + goto st401 + case 95: + goto st402 case 96: - goto tr218 + goto tr228 case 97: - goto st156 + goto st165 case 98: - goto tr195 + goto tr205 case 99: - goto st172 + goto st181 case 100: - goto st201 + goto st210 case 101: - goto st212 + goto st221 case 102: - goto st254 + goto st263 case 103: - goto st265 + goto st274 case 105: - goto st272 + goto st281 case 108: - goto st311 + goto st320 case 110: - goto st314 - case 111: goto st323 + case 111: + goto st332 case 112: - goto st324 + goto st333 case 114: - goto st341 + goto st350 case 115: - goto st355 - case 116: goto st364 + case 116: + goto st373 case 117: - goto st371 + goto st380 case 118: - goto st376 + goto st385 case 119: - goto st378 + goto st387 case 120: - goto st382 + goto st391 case 121: - goto st384 + goto st393 case 123: - goto tr219 + goto tr229 case 124: - goto st458 + goto st467 case 125: - goto tr221 + goto tr231 case 126: - goto tr180 + goto tr191 case 127: - goto tr169 + goto tr180 } switch { case lex.data[(lex.p)] < 14: switch { case lex.data[(lex.p)] > 8: if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr170 + goto tr181 } default: - goto tr169 + goto tr180 } case lex.data[(lex.p)] > 31: switch { case lex.data[(lex.p)] < 49: if 41 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 44 { - goto tr180 + goto tr191 } case lex.data[(lex.p)] > 57: if 91 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 93 { - goto tr180 + goto tr191 } default: - goto tr187 + goto tr97 } default: - goto tr169 + goto tr180 } - goto tr201 - tr170: + goto tr211 + tr181: //line NONE:1 lex.te = (lex.p) + 1 - goto st115 - tr225: + goto st122 + tr235: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st115 - st115: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof115 - } - st_case_115: -//line scanner/scanner.go:3399 - switch lex.data[(lex.p)] { - case 10: - goto tr7 - case 13: - goto st5 - case 32: - goto tr170 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr170 - } - goto tr222 - tr7: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st116 - tr226: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st116 - st116: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof116 - } - st_case_116: -//line scanner/scanner.go:3429 - switch lex.data[(lex.p)] { - case 10: - goto tr226 - case 13: - goto tr227 - case 32: - goto tr225 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr225 - } - goto tr224 - tr227: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st5 - st5: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof5 - } - st_case_5: -//line scanner/scanner.go:3451 - if lex.data[(lex.p)] == 10 { - goto tr7 - } - goto tr6 - st117: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof117 - } - st_case_117: - if lex.data[(lex.p)] == 10 { - goto tr7 - } - goto tr228 - st118: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof118 - } - st_case_118: - if lex.data[(lex.p)] == 61 { - goto st119 - } - goto tr229 - st119: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof119 - } - st_case_119: - if lex.data[(lex.p)] == 61 { - goto tr232 - } - goto tr231 - tr173: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:365 - lex.act = 136 - goto st120 - st120: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof120 - } - st_case_120: -//line scanner/scanner.go:3495 - switch lex.data[(lex.p)] { - case 10: - goto tr10 - case 13: - goto tr10 - case 34: - goto tr11 - case 36: - goto st7 - case 92: - goto st8 - case 123: - goto st9 - } - goto st6 - tr10: -//line scanner/scanner.rl:48 - - if lex.data[lex.p] == '\n' { - lex.NewLines.Append(lex.p) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.NewLines.Append(lex.p) - } - - goto st6 - st6: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof6 - } - st_case_6: -//line scanner/scanner.go:3528 - switch lex.data[(lex.p)] { - case 10: - goto tr10 - case 13: - goto tr10 - case 34: - goto tr11 - case 36: - goto st7 - case 92: - goto st8 - case 123: - goto st9 - } - goto st6 - st7: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof7 - } - st_case_7: - switch lex.data[(lex.p)] { - case 10: - goto tr10 - case 13: - goto tr10 - case 34: - goto tr11 - case 92: - goto st8 - case 96: - goto st6 - } - switch { - case lex.data[(lex.p)] < 91: - if lex.data[(lex.p)] <= 64 { - goto st6 - } - case lex.data[(lex.p)] > 94: - if 124 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto st6 - } - default: - goto st6 - } - goto tr8 - st8: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof8 - } - st_case_8: - switch lex.data[(lex.p)] { - case 10: - goto tr10 - case 13: - goto tr10 - } - goto st6 - st9: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof9 - } - st_case_9: - switch lex.data[(lex.p)] { - case 10: - goto tr10 - case 13: - goto tr10 - case 34: - goto tr11 - case 36: - goto tr8 - } - goto st6 - tr237: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st121 - st121: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof121 - } - st_case_121: -//line scanner/scanner.go:3611 - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 256 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotPhpCloseToken() && lex.isNotNewLine() { - _widec += 256 - } - } - default: - _widec = 256 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotPhpCloseToken() && lex.isNotNewLine() { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 256 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotPhpCloseToken() && lex.isNotNewLine() { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 256 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotPhpCloseToken() && lex.isNotNewLine() { - _widec += 256 - } - } - default: - _widec = 256 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotPhpCloseToken() && lex.isNotNewLine() { - _widec += 256 - } - } - if _widec == 522 { - goto st122 - } - if 512 <= _widec && _widec <= 767 { - goto st121 - } - goto tr234 - tr238: -//line scanner/scanner.rl:64 +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) goto st122 st122: @@ -4757,7 +4716,219 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof122 } st_case_122: -//line scanner/scanner.go:3666 +//line scanner/scanner.go:3580 + switch lex.data[(lex.p)] { + case 10: + goto tr10 + case 13: + goto st6 + case 32: + goto tr181 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr181 + } + goto tr232 + tr10: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st123 + tr236: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st123 + st123: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof123 + } + st_case_123: +//line scanner/scanner.go:3610 + switch lex.data[(lex.p)] { + case 10: + goto tr236 + case 13: + goto tr237 + case 32: + goto tr235 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr235 + } + goto tr234 + tr237: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st6 + st6: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof6 + } + st_case_6: +//line scanner/scanner.go:3632 + if lex.data[(lex.p)] == 10 { + goto tr10 + } + goto tr9 + st124: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof124 + } + st_case_124: + if lex.data[(lex.p)] == 10 { + goto tr10 + } + goto tr238 + st125: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof125 + } + st_case_125: + if lex.data[(lex.p)] == 61 { + goto st126 + } + goto tr239 + st126: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof126 + } + st_case_126: + if lex.data[(lex.p)] == 61 { + goto tr242 + } + goto tr241 + tr184: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:381 + lex.act = 140 + goto st127 + st127: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof127 + } + st_case_127: +//line scanner/scanner.go:3676 + switch lex.data[(lex.p)] { + case 10: + goto tr13 + case 13: + goto tr13 + case 34: + goto tr14 + case 36: + goto st8 + case 92: + goto st9 + case 123: + goto st10 + } + goto st7 + tr13: +//line scanner/scanner.rl:50 + + if lex.data[lex.p] == '\n' { + lex.NewLines.Append(lex.p) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.NewLines.Append(lex.p) + } + + goto st7 + st7: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof7 + } + st_case_7: +//line scanner/scanner.go:3709 + switch lex.data[(lex.p)] { + case 10: + goto tr13 + case 13: + goto tr13 + case 34: + goto tr14 + case 36: + goto st8 + case 92: + goto st9 + case 123: + goto st10 + } + goto st7 + st8: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof8 + } + st_case_8: + switch lex.data[(lex.p)] { + case 10: + goto tr13 + case 13: + goto tr13 + case 34: + goto tr14 + case 92: + goto st9 + case 96: + goto st7 + } + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto st7 + } + case lex.data[(lex.p)] > 94: + if 124 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto st7 + } + default: + goto st7 + } + goto tr11 + st9: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof9 + } + st_case_9: + switch lex.data[(lex.p)] { + case 10: + goto tr13 + case 13: + goto tr13 + } + goto st7 + st10: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof10 + } + st_case_10: + switch lex.data[(lex.p)] { + case 10: + goto tr13 + case 13: + goto tr13 + case 34: + goto tr14 + case 36: + goto tr11 + } + goto st7 + tr247: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st128 + st128: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof128 + } + st_case_128: +//line scanner/scanner.go:3792 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -4797,104 +4968,159 @@ func (lex *Lexer) Lex(lval Lval) int { } } if _widec == 522 { - goto tr238 + goto st129 } if 512 <= _widec && _widec <= 767 { - goto tr237 + goto st128 } - goto tr236 - st123: + goto tr244 + tr248: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st129 + st129: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof123 + goto _test_eof129 } - st_case_123: + st_case_129: +//line scanner/scanner.go:3847 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 256 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotPhpCloseToken() && lex.isNotNewLine() { + _widec += 256 + } + } + default: + _widec = 256 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotPhpCloseToken() && lex.isNotNewLine() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 256 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotPhpCloseToken() && lex.isNotNewLine() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 256 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotPhpCloseToken() && lex.isNotNewLine() { + _widec += 256 + } + } + default: + _widec = 256 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotPhpCloseToken() && lex.isNotNewLine() { + _widec += 256 + } + } + if _widec == 522 { + goto tr248 + } + if 512 <= _widec && _widec <= 767 { + goto tr247 + } + goto tr246 + st130: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof130 + } + st_case_130: if lex.data[(lex.p)] == 96 { - goto tr229 + goto tr239 } switch { case lex.data[(lex.p)] < 91: if lex.data[(lex.p)] <= 64 { - goto tr229 + goto tr239 } case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr229 + goto tr239 } default: - goto tr229 + goto tr239 } - goto st124 - st124: + goto st131 + st131: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof124 + goto _test_eof131 } - st_case_124: + st_case_131: if lex.data[(lex.p)] == 96 { - goto tr240 + goto tr250 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr240 + goto tr250 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr240 + goto tr250 } case lex.data[(lex.p)] >= 91: - goto tr240 + goto tr250 } default: - goto tr240 + goto tr250 } - goto st124 - st125: + goto st131 + st132: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof125 + goto _test_eof132 } - st_case_125: + st_case_132: if lex.data[(lex.p)] == 61 { - goto tr241 + goto tr251 } - goto tr229 - st126: + goto tr239 + st133: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof126 + goto _test_eof133 } - st_case_126: + st_case_133: switch lex.data[(lex.p)] { case 38: - goto tr242 + goto tr252 case 61: - goto tr243 + goto tr253 } - goto tr229 - tr178: + goto tr239 + tr189: //line NONE:1 lex.te = (lex.p) + 1 - goto st127 - st127: + goto st134 + st134: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof127 + goto _test_eof134 } - st_case_127: -//line scanner/scanner.go:3790 + st_case_134: +//line scanner/scanner.go:3971 switch lex.data[(lex.p)] { case 10: - goto tr17 + goto tr20 case 13: - goto tr17 + goto tr20 case 39: - goto tr11 + goto tr14 case 92: - goto st11 + goto st12 } - goto st10 - tr17: -//line scanner/scanner.rl:48 + goto st11 + tr20: +//line scanner/scanner.rl:50 if lex.data[lex.p] == '\n' { lex.NewLines.Append(lex.p) @@ -4904,156 +5130,144 @@ func (lex *Lexer) Lex(lval Lval) int { lex.NewLines.Append(lex.p) } - goto st10 - st10: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof10 - } - st_case_10: -//line scanner/scanner.go:3819 - switch lex.data[(lex.p)] { - case 10: - goto tr17 - case 13: - goto tr17 - case 39: - goto tr11 - case 92: - goto st11 - } - goto st10 + goto st11 st11: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof11 } st_case_11: +//line scanner/scanner.go:4000 switch lex.data[(lex.p)] { case 10: - goto tr17 + goto tr20 case 13: - goto tr17 - } - goto st10 - tr179: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st128 - st128: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof128 - } - st_case_128: -//line scanner/scanner.go:3853 - switch lex.data[(lex.p)] { - case 9: - goto st12 - case 32: - goto st12 - case 65: - goto st13 - case 66: - goto st18 - case 68: - goto st30 - case 70: - goto st36 - case 73: - goto st40 - case 79: - goto st47 - case 82: - goto st53 - case 83: - goto st56 - case 85: - goto st61 - case 97: - goto st13 - case 98: - goto st18 - case 100: - goto st30 - case 102: - goto st36 - case 105: - goto st40 - case 111: - goto st47 - case 114: - goto st53 - case 115: - goto st56 - case 117: - goto st61 - } - if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr20 + case 39: + goto tr14 + case 92: goto st12 } - goto tr229 + goto st11 st12: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof12 } st_case_12: + switch lex.data[(lex.p)] { + case 10: + goto tr20 + case 13: + goto tr20 + } + goto st11 + tr190: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st135 + st135: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof135 + } + st_case_135: +//line scanner/scanner.go:4034 switch lex.data[(lex.p)] { case 9: - goto st12 + goto st13 case 32: - goto st12 + goto st13 case 65: - goto st13 + goto st14 case 66: - goto st18 + goto st19 case 68: - goto st30 + goto st31 case 70: - goto st36 + goto st37 case 73: - goto st40 + goto st41 case 79: - goto st47 + goto st48 case 82: - goto st53 + goto st54 case 83: - goto st56 + goto st57 case 85: - goto st61 + goto st62 case 97: - goto st13 + goto st14 case 98: - goto st18 + goto st19 case 100: - goto st30 + goto st31 case 102: - goto st36 + goto st37 case 105: - goto st40 + goto st41 case 111: - goto st47 + goto st48 case 114: - goto st53 + goto st54 case 115: - goto st56 + goto st57 case 117: - goto st61 + goto st62 } if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st12 + goto st13 } - goto tr19 + goto tr239 st13: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof13 } st_case_13: switch lex.data[(lex.p)] { + case 9: + goto st13 + case 32: + goto st13 + case 65: + goto st14 + case 66: + goto st19 + case 68: + goto st31 + case 70: + goto st37 + case 73: + goto st41 + case 79: + goto st48 case 82: + goto st54 + case 83: + goto st57 + case 85: + goto st62 + case 97: goto st14 + case 98: + goto st19 + case 100: + goto st31 + case 102: + goto st37 + case 105: + goto st41 + case 111: + goto st48 case 114: - goto st14 + goto st54 + case 115: + goto st57 + case 117: + goto st62 } - goto tr19 + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st13 + } + goto tr22 st14: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof14 @@ -5065,174 +5279,165 @@ func (lex *Lexer) Lex(lval Lval) int { case 114: goto st15 } - goto tr19 + goto tr22 st15: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof15 } st_case_15: switch lex.data[(lex.p)] { - case 65: + case 82: goto st16 - case 97: + case 114: goto st16 } - goto tr19 + goto tr22 st16: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof16 } st_case_16: switch lex.data[(lex.p)] { - case 89: + case 65: goto st17 - case 121: + case 97: goto st17 } - goto tr19 + goto tr22 st17: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof17 } st_case_17: switch lex.data[(lex.p)] { - case 9: - goto st17 - case 32: - goto st17 - case 41: - goto tr34 + case 89: + goto st18 + case 121: + goto st18 } - if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st17 - } - goto tr19 + goto tr22 st18: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof18 } st_case_18: switch lex.data[(lex.p)] { - case 73: - goto st19 - case 79: - goto st24 - case 105: - goto st19 - case 111: - goto st24 + case 9: + goto st18 + case 32: + goto st18 + case 41: + goto tr37 } - goto tr19 + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st18 + } + goto tr22 st19: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof19 } st_case_19: switch lex.data[(lex.p)] { - case 78: + case 73: goto st20 - case 110: + case 79: + goto st25 + case 105: goto st20 + case 111: + goto st25 } - goto tr19 + goto tr22 st20: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof20 } st_case_20: switch lex.data[(lex.p)] { - case 65: + case 78: goto st21 - case 97: + case 110: goto st21 } - goto tr19 + goto tr22 st21: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof21 } st_case_21: switch lex.data[(lex.p)] { - case 82: + case 65: goto st22 - case 114: + case 97: goto st22 } - goto tr19 + goto tr22 st22: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof22 } st_case_22: switch lex.data[(lex.p)] { - case 89: + case 82: goto st23 - case 121: + case 114: goto st23 } - goto tr19 + goto tr22 st23: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof23 } st_case_23: switch lex.data[(lex.p)] { - case 9: - goto st23 - case 32: - goto st23 - case 41: - goto tr41 + case 89: + goto st24 + case 121: + goto st24 } - if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st23 - } - goto tr19 + goto tr22 st24: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof24 } st_case_24: switch lex.data[(lex.p)] { - case 79: - goto st25 - case 111: - goto st25 + case 9: + goto st24 + case 32: + goto st24 + case 41: + goto tr44 } - goto tr19 + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st24 + } + goto tr22 st25: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof25 } st_case_25: switch lex.data[(lex.p)] { - case 76: + case 79: goto st26 - case 108: + case 111: goto st26 } - goto tr19 + goto tr22 st26: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof26 } st_case_26: switch lex.data[(lex.p)] { - case 9: + case 76: goto st27 - case 32: - goto st27 - case 41: - goto tr45 - case 69: - goto st28 - case 101: - goto st28 - } - if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + case 108: goto st27 } - goto tr19 + goto tr22 st27: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof27 @@ -5240,210 +5445,210 @@ func (lex *Lexer) Lex(lval Lval) int { st_case_27: switch lex.data[(lex.p)] { case 9: - goto st27 + goto st28 case 32: - goto st27 + goto st28 case 41: - goto tr45 + goto tr48 + case 69: + goto st29 + case 101: + goto st29 } if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st27 + goto st28 } - goto tr19 + goto tr22 st28: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof28 } st_case_28: switch lex.data[(lex.p)] { - case 65: - goto st29 - case 97: - goto st29 + case 9: + goto st28 + case 32: + goto st28 + case 41: + goto tr48 } - goto tr19 + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st28 + } + goto tr22 st29: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof29 } st_case_29: switch lex.data[(lex.p)] { - case 78: - goto st27 - case 110: - goto st27 + case 65: + goto st30 + case 97: + goto st30 } - goto tr19 + goto tr22 st30: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof30 } st_case_30: switch lex.data[(lex.p)] { - case 79: - goto st31 - case 111: - goto st31 + case 78: + goto st28 + case 110: + goto st28 } - goto tr19 + goto tr22 st31: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof31 } st_case_31: switch lex.data[(lex.p)] { - case 85: + case 79: goto st32 - case 117: + case 111: goto st32 } - goto tr19 + goto tr22 st32: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof32 } st_case_32: switch lex.data[(lex.p)] { - case 66: + case 85: goto st33 - case 98: + case 117: goto st33 } - goto tr19 + goto tr22 st33: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof33 } st_case_33: switch lex.data[(lex.p)] { - case 76: + case 66: goto st34 - case 108: + case 98: goto st34 } - goto tr19 + goto tr22 st34: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof34 } st_case_34: switch lex.data[(lex.p)] { - case 69: + case 76: goto st35 - case 101: + case 108: goto st35 } - goto tr19 + goto tr22 st35: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof35 } st_case_35: switch lex.data[(lex.p)] { - case 9: - goto st35 - case 32: - goto st35 - case 41: - goto tr53 + case 69: + goto st36 + case 101: + goto st36 } - if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st35 - } - goto tr19 + goto tr22 st36: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof36 } st_case_36: switch lex.data[(lex.p)] { - case 76: - goto st37 - case 108: - goto st37 + case 9: + goto st36 + case 32: + goto st36 + case 41: + goto tr56 } - goto tr19 + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st36 + } + goto tr22 st37: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof37 } st_case_37: switch lex.data[(lex.p)] { - case 79: + case 76: goto st38 - case 111: + case 108: goto st38 } - goto tr19 + goto tr22 st38: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof38 } st_case_38: switch lex.data[(lex.p)] { - case 65: + case 79: goto st39 - case 97: + case 111: goto st39 } - goto tr19 + goto tr22 st39: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof39 } st_case_39: switch lex.data[(lex.p)] { - case 84: - goto st35 - case 116: - goto st35 + case 65: + goto st40 + case 97: + goto st40 } - goto tr19 + goto tr22 st40: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof40 } st_case_40: switch lex.data[(lex.p)] { - case 78: - goto st41 - case 110: - goto st41 + case 84: + goto st36 + case 116: + goto st36 } - goto tr19 + goto tr22 st41: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof41 } st_case_41: switch lex.data[(lex.p)] { - case 84: + case 78: goto st42 - case 116: + case 110: goto st42 } - goto tr19 + goto tr22 st42: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof42 } st_case_42: switch lex.data[(lex.p)] { - case 9: + case 84: goto st43 - case 32: - goto st43 - case 41: - goto tr60 - case 69: - goto st44 - case 101: - goto st44 - } - if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + case 116: goto st43 } - goto tr19 + goto tr22 st43: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof43 @@ -5451,715 +5656,467 @@ func (lex *Lexer) Lex(lval Lval) int { st_case_43: switch lex.data[(lex.p)] { case 9: - goto st43 + goto st44 case 32: - goto st43 + goto st44 case 41: - goto tr60 + goto tr63 + case 69: + goto st45 + case 101: + goto st45 } if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st43 + goto st44 } - goto tr19 + goto tr22 st44: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof44 } st_case_44: switch lex.data[(lex.p)] { - case 71: - goto st45 - case 103: - goto st45 + case 9: + goto st44 + case 32: + goto st44 + case 41: + goto tr63 } - goto tr19 + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st44 + } + goto tr22 st45: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof45 } st_case_45: switch lex.data[(lex.p)] { - case 69: + case 71: goto st46 - case 101: + case 103: goto st46 } - goto tr19 + goto tr22 st46: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof46 } st_case_46: switch lex.data[(lex.p)] { - case 82: - goto st43 - case 114: - goto st43 + case 69: + goto st47 + case 101: + goto st47 } - goto tr19 + goto tr22 st47: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof47 } st_case_47: switch lex.data[(lex.p)] { - case 66: - goto st48 - case 98: - goto st48 + case 82: + goto st44 + case 114: + goto st44 } - goto tr19 + goto tr22 st48: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof48 } st_case_48: switch lex.data[(lex.p)] { - case 74: + case 66: goto st49 - case 106: + case 98: goto st49 } - goto tr19 + goto tr22 st49: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof49 } st_case_49: switch lex.data[(lex.p)] { - case 69: + case 74: goto st50 - case 101: + case 106: goto st50 } - goto tr19 + goto tr22 st50: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof50 } st_case_50: switch lex.data[(lex.p)] { - case 67: + case 69: goto st51 - case 99: + case 101: goto st51 } - goto tr19 + goto tr22 st51: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof51 } st_case_51: switch lex.data[(lex.p)] { - case 84: + case 67: goto st52 - case 116: + case 99: goto st52 } - goto tr19 + goto tr22 st52: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof52 } st_case_52: switch lex.data[(lex.p)] { - case 9: - goto st52 - case 32: - goto st52 - case 41: - goto tr69 + case 84: + goto st53 + case 116: + goto st53 } - if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st52 - } - goto tr19 + goto tr22 st53: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof53 } st_case_53: switch lex.data[(lex.p)] { - case 69: - goto st54 - case 101: - goto st54 + case 9: + goto st53 + case 32: + goto st53 + case 41: + goto tr72 } - goto tr19 + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st53 + } + goto tr22 st54: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof54 } st_case_54: switch lex.data[(lex.p)] { - case 65: + case 69: goto st55 - case 97: + case 101: goto st55 } - goto tr19 + goto tr22 st55: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof55 } st_case_55: switch lex.data[(lex.p)] { - case 76: - goto st35 - case 108: - goto st35 + case 65: + goto st56 + case 97: + goto st56 } - goto tr19 + goto tr22 st56: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof56 } st_case_56: switch lex.data[(lex.p)] { - case 84: - goto st57 - case 116: - goto st57 + case 76: + goto st36 + case 108: + goto st36 } - goto tr19 + goto tr22 st57: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof57 } st_case_57: switch lex.data[(lex.p)] { - case 82: + case 84: goto st58 - case 114: + case 116: goto st58 } - goto tr19 + goto tr22 st58: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof58 } st_case_58: switch lex.data[(lex.p)] { - case 73: + case 82: goto st59 - case 105: + case 114: goto st59 } - goto tr19 + goto tr22 st59: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof59 } st_case_59: switch lex.data[(lex.p)] { - case 78: + case 73: goto st60 - case 110: + case 105: goto st60 } - goto tr19 + goto tr22 st60: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof60 } st_case_60: switch lex.data[(lex.p)] { - case 71: - goto st23 - case 103: - goto st23 + case 78: + goto st61 + case 110: + goto st61 } - goto tr19 + goto tr22 st61: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof61 } st_case_61: switch lex.data[(lex.p)] { - case 78: - goto st62 - case 110: - goto st62 + case 71: + goto st24 + case 103: + goto st24 } - goto tr19 + goto tr22 st62: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof62 } st_case_62: switch lex.data[(lex.p)] { - case 83: + case 78: goto st63 - case 115: + case 110: goto st63 } - goto tr19 + goto tr22 st63: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof63 } st_case_63: switch lex.data[(lex.p)] { - case 69: + case 83: goto st64 - case 101: + case 115: goto st64 } - goto tr19 + goto tr22 st64: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof64 } st_case_64: switch lex.data[(lex.p)] { - case 84: + case 69: goto st65 - case 116: + case 101: goto st65 } - goto tr19 + goto tr22 st65: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof65 } st_case_65: switch lex.data[(lex.p)] { - case 9: - goto st65 - case 32: - goto st65 - case 41: - goto tr80 - } - if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st65 - } - goto tr19 - st129: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof129 - } - st_case_129: - switch lex.data[(lex.p)] { - case 42: - goto st130 - case 61: - goto tr245 - } - goto tr229 - st130: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof130 - } - st_case_130: - if lex.data[(lex.p)] == 61 { - goto tr247 - } - goto tr246 - st131: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof131 - } - st_case_131: - switch lex.data[(lex.p)] { - case 43: - goto tr248 - case 61: - goto tr249 - } - goto tr229 - st132: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof132 - } - st_case_132: - switch lex.data[(lex.p)] { - case 45: - goto tr250 - case 61: - goto tr251 - case 62: - goto tr252 - } - goto tr229 - tr184: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st133 - st133: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof133 - } - st_case_133: -//line scanner/scanner.go:4701 - switch lex.data[(lex.p)] { - case 46: + case 84: + goto st66 + case 116: goto st66 - case 61: - goto tr255 } - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto tr254 - } - goto tr229 + goto tr22 st66: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof66 } st_case_66: - if lex.data[(lex.p)] == 46 { - goto tr81 - } - goto tr19 - tr254: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:163 - lex.act = 8 - goto st134 - st134: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof134 - } - st_case_134: -//line scanner/scanner.go:4733 switch lex.data[(lex.p)] { - case 69: - goto st67 - case 101: - goto st67 + case 9: + goto st66 + case 32: + goto st66 + case 41: + goto tr83 } - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto tr254 + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st66 } - goto tr256 - st67: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof67 - } - st_case_67: - switch lex.data[(lex.p)] { - case 43: - goto st68 - case 45: - goto st68 - } - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st135 - } - goto tr8 - st68: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof68 - } - st_case_68: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st135 - } - goto tr8 - st135: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof135 - } - st_case_135: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st135 - } - goto tr256 - tr185: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st136 + goto tr22 st136: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof136 } st_case_136: -//line scanner/scanner.go:4787 switch lex.data[(lex.p)] { case 42: - goto st69 - case 47: - goto st121 + goto st137 case 61: - goto tr258 + goto tr255 } - goto tr229 - tr87: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st69 - st69: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof69 - } - st_case_69: -//line scanner/scanner.go:4806 - switch lex.data[(lex.p)] { - case 10: - goto st70 - case 42: - goto st71 - } - goto st69 - tr88: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st70 - st70: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof70 - } - st_case_70: -//line scanner/scanner.go:4823 - switch lex.data[(lex.p)] { - case 10: - goto tr88 - case 42: - goto tr89 - } - goto tr87 - tr89: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st71 - st71: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof71 - } - st_case_71: -//line scanner/scanner.go:4840 - switch lex.data[(lex.p)] { - case 10: - goto st70 - case 42: - goto st71 - case 47: - goto tr90 - } - goto st69 - tr186: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:177 - lex.act = 10 - goto st137 + goto tr239 st137: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof137 } st_case_137: -//line scanner/scanner.go:4862 - switch lex.data[(lex.p)] { - case 46: - goto tr254 - case 69: - goto st67 - case 98: - goto st72 - case 101: - goto st67 - case 120: - goto st73 + if lex.data[(lex.p)] == 61 { + goto tr257 } - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto tr187 - } - goto tr259 - tr187: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:177 - lex.act = 10 - goto st138 + goto tr256 st138: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof138 } st_case_138: -//line scanner/scanner.go:4891 switch lex.data[(lex.p)] { - case 46: - goto tr254 - case 69: - goto st67 - case 101: - goto st67 + case 43: + goto tr258 + case 61: + goto tr259 } - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto tr187 - } - goto tr259 - st72: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof72 - } - st_case_72: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { - goto st139 - } - goto tr91 + goto tr239 st139: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof139 } st_case_139: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { - goto st139 + switch lex.data[(lex.p)] { + case 45: + goto tr260 + case 61: + goto tr261 + case 62: + goto tr262 } - goto tr262 - st73: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof73 - } - st_case_73: - switch { - case lex.data[(lex.p)] < 65: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st140 - } - case lex.data[(lex.p)] > 70: - if 97 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 102 { - goto st140 - } - default: - goto st140 - } - goto tr91 + goto tr239 + tr195: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st140 st140: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof140 } st_case_140: - switch { - case lex.data[(lex.p)] < 65: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st140 - } - case lex.data[(lex.p)] > 70: - if 97 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 102 { - goto st140 - } - default: - goto st140 +//line scanner/scanner.go:4882 + switch lex.data[(lex.p)] { + case 46: + goto st67 + case 61: + goto tr264 } - goto tr263 + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr88 + } + goto tr239 + st67: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof67 + } + st_case_67: + if lex.data[(lex.p)] == 46 { + goto tr84 + } + goto tr22 + tr88: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:175 + lex.act = 10 + goto st141 st141: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof141 } st_case_141: - if lex.data[(lex.p)] == 58 { - goto tr264 +//line scanner/scanner.go:4914 + switch lex.data[(lex.p)] { + case 69: + goto st68 + case 95: + goto st70 + case 101: + goto st68 } - goto tr229 - tr189: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr88 + } + goto tr265 + st68: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof68 + } + st_case_68: + switch lex.data[(lex.p)] { + case 43: + goto st69 + case 45: + goto st69 + } + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr86 + } + goto tr11 + st69: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof69 + } + st_case_69: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr86 + } + goto tr11 + tr86: //line NONE:1 lex.te = (lex.p) + 1 +//line scanner/scanner.rl:175 + lex.act = 10 goto st142 st142: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof142 } st_case_142: -//line scanner/scanner.go:4977 - switch lex.data[(lex.p)] { - case 10: - goto st75 - case 13: - goto st76 - case 32: - goto st74 - case 63: - goto st77 +//line scanner/scanner.go:4963 + if lex.data[(lex.p)] == 95 { + goto st69 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st74 + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr86 } - goto tr229 - tr98: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st74 - st74: + goto tr265 + st70: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof74 + goto _test_eof70 } - st_case_74: -//line scanner/scanner.go:5001 - switch lex.data[(lex.p)] { - case 10: - goto st75 - case 13: - goto st76 - case 32: - goto st74 - case 63: - goto st77 + st_case_70: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr88 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st74 - } - goto tr19 - tr99: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st75 - st75: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof75 - } - st_case_75: -//line scanner/scanner.go:5025 - switch lex.data[(lex.p)] { - case 10: - goto tr99 - case 13: - goto tr100 - case 32: - goto tr98 - case 63: - goto tr101 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr98 - } - goto tr19 - tr100: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st76 - st76: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof76 - } - st_case_76: -//line scanner/scanner.go:5049 - if lex.data[(lex.p)] == 10 { - goto st75 - } - goto tr19 - tr101: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st77 - st77: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof77 - } - st_case_77: -//line scanner/scanner.go:5063 - if lex.data[(lex.p)] == 62 { - goto tr102 - } - goto tr19 - tr102: + goto tr87 + tr196: //line NONE:1 lex.te = (lex.p) + 1 @@ -6169,1332 +6126,1388 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof143 } st_case_143: -//line scanner/scanner.go:5078 +//line scanner/scanner.go:4990 + switch lex.data[(lex.p)] { + case 42: + goto st71 + case 47: + goto st128 + case 61: + goto tr268 + } + goto tr239 + tr92: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st71 + st71: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof71 + } + st_case_71: +//line scanner/scanner.go:5009 switch lex.data[(lex.p)] { case 10: - goto st144 - case 13: - goto st78 + goto st72 + case 42: + goto st73 } - goto tr265 + goto st71 + tr93: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st72 + st72: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof72 + } + st_case_72: +//line scanner/scanner.go:5026 + switch lex.data[(lex.p)] { + case 10: + goto tr93 + case 42: + goto tr94 + } + goto tr92 + tr94: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st73 + st73: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof73 + } + st_case_73: +//line scanner/scanner.go:5043 + switch lex.data[(lex.p)] { + case 10: + goto st72 + case 42: + goto st73 + case 47: + goto tr95 + } + goto st71 + tr197: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:186 + lex.act = 12 + goto st144 st144: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof144 } st_case_144: - goto tr267 - st78: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof78 +//line scanner/scanner.go:5065 + switch lex.data[(lex.p)] { + case 46: + goto tr270 + case 69: + goto st68 + case 95: + goto st74 + case 98: + goto st75 + case 101: + goto st68 + case 120: + goto st76 } - st_case_78: - if lex.data[(lex.p)] == 10 { - goto st144 + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr97 } - goto tr103 + goto tr269 + tr270: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:175 + lex.act = 10 + goto st145 st145: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof145 } st_case_145: +//line scanner/scanner.go:5096 switch lex.data[(lex.p)] { - case 60: - goto tr268 - case 61: - goto st148 - case 62: - goto tr270 + case 69: + goto st68 + case 101: + goto st68 } - goto tr229 - tr268: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr88 + } + goto tr265 + tr97: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:301 - lex.act = 115 +//line scanner/scanner.rl:186 + lex.act = 12 goto st146 st146: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof146 } st_case_146: -//line scanner/scanner.go:5127 +//line scanner/scanner.go:5119 switch lex.data[(lex.p)] { - case 60: - goto st79 - case 61: - goto tr272 + case 46: + goto tr270 + case 69: + goto st68 + case 95: + goto st74 + case 101: + goto st68 } - goto tr271 - st79: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr97 + } + goto tr269 + st74: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof79 + goto _test_eof74 } - st_case_79: - switch lex.data[(lex.p)] { - case 9: - goto st79 - case 32: - goto st79 - case 34: - goto st80 - case 39: - goto st84 - case 96: - goto tr8 + st_case_74: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr97 } - switch { - case lex.data[(lex.p)] < 91: - if lex.data[(lex.p)] <= 64 { - goto tr8 - } - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr8 - } - default: - goto tr8 - } - goto tr108 - st80: + goto tr96 + st75: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof80 + goto _test_eof75 } - st_case_80: - if lex.data[(lex.p)] == 96 { - goto tr8 + st_case_75: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { + goto tr98 } - switch { - case lex.data[(lex.p)] < 91: - if lex.data[(lex.p)] <= 64 { - goto tr8 - } - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr8 - } - default: - goto tr8 - } - goto tr109 - tr109: -//line scanner/scanner.rl:45 - lblStart = lex.p - goto st81 - st81: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof81 - } - st_case_81: -//line scanner/scanner.go:5195 - switch lex.data[(lex.p)] { - case 34: - goto tr110 - case 96: - goto tr8 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr8 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr8 - } - case lex.data[(lex.p)] >= 91: - goto tr8 - } - default: - goto tr8 - } - goto st81 - tr110: -//line scanner/scanner.rl:46 - lblEnd = lex.p - goto st82 - st82: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof82 - } - st_case_82: -//line scanner/scanner.go:5229 - switch lex.data[(lex.p)] { - case 10: - goto st147 - case 13: - goto st83 - } - goto tr8 - tr116: -//line scanner/scanner.rl:46 - lblEnd = lex.p + goto tr11 + tr98: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:176 + lex.act = 11 goto st147 st147: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof147 } st_case_147: -//line scanner/scanner.go:5246 - goto tr273 - tr117: -//line scanner/scanner.rl:46 - lblEnd = lex.p - goto st83 - st83: +//line scanner/scanner.go:5164 + if lex.data[(lex.p)] == 95 { + goto st75 + } + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { + goto tr98 + } + goto tr274 + st76: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof83 - } - st_case_83: -//line scanner/scanner.go:5257 - if lex.data[(lex.p)] == 10 { - goto st147 - } - goto tr8 - st84: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof84 - } - st_case_84: - if lex.data[(lex.p)] == 96 { - goto tr8 + goto _test_eof76 } + st_case_76: switch { - case lex.data[(lex.p)] < 91: - if lex.data[(lex.p)] <= 64 { - goto tr8 + case lex.data[(lex.p)] < 65: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr99 } - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr8 + case lex.data[(lex.p)] > 70: + if 97 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 102 { + goto tr99 } default: - goto tr8 + goto tr99 } - goto tr114 - tr114: -//line scanner/scanner.rl:45 - lblStart = lex.p - goto st85 - st85: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof85 - } - st_case_85: -//line scanner/scanner.go:5292 - switch lex.data[(lex.p)] { - case 39: - goto tr110 - case 96: - goto tr8 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr8 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr8 - } - case lex.data[(lex.p)] >= 91: - goto tr8 - } - default: - goto tr8 - } - goto st85 - tr108: -//line scanner/scanner.rl:45 - lblStart = lex.p - goto st86 - st86: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof86 - } - st_case_86: -//line scanner/scanner.go:5326 - switch lex.data[(lex.p)] { - case 10: - goto tr116 - case 13: - goto tr117 - case 96: - goto tr8 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr8 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr8 - } - case lex.data[(lex.p)] >= 91: - goto tr8 - } - default: - goto tr8 - } - goto st86 + goto tr11 + tr99: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:201 + lex.act = 13 + goto st148 st148: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof148 } st_case_148: - if lex.data[(lex.p)] == 62 { - goto tr275 +//line scanner/scanner.go:5202 + if lex.data[(lex.p)] == 95 { + goto st76 } - goto tr274 + switch { + case lex.data[(lex.p)] < 65: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr99 + } + case lex.data[(lex.p)] > 70: + if 97 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 102 { + goto tr99 + } + default: + goto tr99 + } + goto tr275 st149: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof149 } st_case_149: - switch lex.data[(lex.p)] { - case 61: - goto st150 - case 62: - goto tr277 + if lex.data[(lex.p)] == 58 { + goto tr276 } - goto tr229 + goto tr239 + tr199: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st150 st150: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof150 } st_case_150: - if lex.data[(lex.p)] == 61 { - goto tr279 +//line scanner/scanner.go:5238 + switch lex.data[(lex.p)] { + case 10: + goto st78 + case 13: + goto st79 + case 32: + goto st77 + case 63: + goto st80 } - goto tr278 + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st77 + } + goto tr239 + tr104: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st77 + st77: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof77 + } + st_case_77: +//line scanner/scanner.go:5262 + switch lex.data[(lex.p)] { + case 10: + goto st78 + case 13: + goto st79 + case 32: + goto st77 + case 63: + goto st80 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st77 + } + goto tr22 + tr105: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st78 + st78: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof78 + } + st_case_78: +//line scanner/scanner.go:5286 + switch lex.data[(lex.p)] { + case 10: + goto tr105 + case 13: + goto tr106 + case 32: + goto tr104 + case 63: + goto tr107 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr104 + } + goto tr22 + tr106: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st79 + st79: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof79 + } + st_case_79: +//line scanner/scanner.go:5310 + if lex.data[(lex.p)] == 10 { + goto st78 + } + goto tr22 + tr107: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st80 + st80: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof80 + } + st_case_80: +//line scanner/scanner.go:5324 + if lex.data[(lex.p)] == 62 { + goto tr108 + } + goto tr22 + tr108: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st151 st151: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof151 } st_case_151: +//line scanner/scanner.go:5339 switch lex.data[(lex.p)] { - case 61: - goto tr280 - case 62: + case 10: goto st152 + case 13: + goto st81 } - goto tr229 + goto tr277 st152: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof152 } st_case_152: - if lex.data[(lex.p)] == 61 { - goto tr283 + goto tr279 + st81: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof81 } - goto tr282 + st_case_81: + if lex.data[(lex.p)] == 10 { + goto st152 + } + goto tr109 st153: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof153 } st_case_153: switch lex.data[(lex.p)] { + case 60: + goto tr280 + case 61: + goto st156 case 62: - goto tr284 - case 63: - goto tr285 + goto tr282 } - goto tr229 - tr284: + goto tr239 + tr280: //line NONE:1 lex.te = (lex.p) + 1 +//line scanner/scanner.rl:316 + lex.act = 118 goto st154 st154: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof154 } st_case_154: -//line scanner/scanner.go:5426 +//line scanner/scanner.go:5388 + switch lex.data[(lex.p)] { + case 60: + goto st82 + case 61: + goto tr284 + } + goto tr283 + st82: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof82 + } + st_case_82: + switch lex.data[(lex.p)] { + case 9: + goto st82 + case 32: + goto st82 + case 34: + goto st83 + case 39: + goto st87 + case 96: + goto tr11 + } + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto tr11 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr11 + } + default: + goto tr11 + } + goto tr114 + st83: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof83 + } + st_case_83: + if lex.data[(lex.p)] == 96 { + goto tr11 + } + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto tr11 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr11 + } + default: + goto tr11 + } + goto tr115 + tr115: +//line scanner/scanner.rl:47 + lblStart = lex.p + goto st84 + st84: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof84 + } + st_case_84: +//line scanner/scanner.go:5456 + switch lex.data[(lex.p)] { + case 34: + goto tr116 + case 96: + goto tr11 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr11 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr11 + } + case lex.data[(lex.p)] >= 91: + goto tr11 + } + default: + goto tr11 + } + goto st84 + tr116: +//line scanner/scanner.rl:48 + lblEnd = lex.p + goto st85 + st85: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof85 + } + st_case_85: +//line scanner/scanner.go:5490 switch lex.data[(lex.p)] { case 10: goto st155 case 13: - goto st87 + goto st86 } - goto tr286 + goto tr11 + tr122: +//line scanner/scanner.rl:48 + lblEnd = lex.p + goto st155 st155: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof155 } st_case_155: - goto tr288 +//line scanner/scanner.go:5507 + goto tr285 + tr123: +//line scanner/scanner.rl:48 + lblEnd = lex.p + goto st86 + st86: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof86 + } + st_case_86: +//line scanner/scanner.go:5518 + if lex.data[(lex.p)] == 10 { + goto st155 + } + goto tr11 st87: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof87 } st_case_87: - if lex.data[(lex.p)] == 10 { - goto st155 + if lex.data[(lex.p)] == 96 { + goto tr11 } - goto tr119 + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto tr11 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr11 + } + default: + goto tr11 + } + goto tr120 + tr120: +//line scanner/scanner.rl:47 + lblStart = lex.p + goto st88 + st88: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof88 + } + st_case_88: +//line scanner/scanner.go:5553 + switch lex.data[(lex.p)] { + case 39: + goto tr116 + case 96: + goto tr11 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr11 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr11 + } + case lex.data[(lex.p)] >= 91: + goto tr11 + } + default: + goto tr11 + } + goto st88 + tr114: +//line scanner/scanner.rl:47 + lblStart = lex.p + goto st89 + st89: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof89 + } + st_case_89: +//line scanner/scanner.go:5587 + switch lex.data[(lex.p)] { + case 10: + goto tr122 + case 13: + goto tr123 + case 96: + goto tr11 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr11 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr11 + } + case lex.data[(lex.p)] >= 91: + goto tr11 + } + default: + goto tr11 + } + goto st89 st156: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof156 } st_case_156: - switch lex.data[(lex.p)] { - case 66: - goto st158 - case 78: - goto st164 - case 82: - goto st165 - case 83: - goto tr293 - case 96: - goto tr289 - case 98: - goto st158 - case 110: - goto st164 - case 114: - goto st165 - case 115: - goto tr293 + if lex.data[(lex.p)] == 62 { + goto tr287 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 - } - case lex.data[(lex.p)] >= 91: - goto tr289 - } - default: - goto tr289 - } - goto tr201 - tr201: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:340 - lex.act = 131 - goto st157 - tr293: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:200 - lex.act = 14 - goto st157 - tr299: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:198 - lex.act = 12 - goto st157 - tr300: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:270 - lex.act = 84 - goto st157 - tr303: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:199 - lex.act = 13 - goto st157 - tr308: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:201 - lex.act = 15 - goto st157 - tr320: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:202 - lex.act = 16 - goto st157 - tr321: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:203 - lex.act = 17 - goto st157 - tr323: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:204 - lex.act = 18 - goto st157 - tr330: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:229 - lex.act = 43 - goto st157 - tr334: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:205 - lex.act = 19 - goto st157 - tr336: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:206 - lex.act = 20 - goto st157 - tr340: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:207 - lex.act = 21 - goto st157 - tr344: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:208 - lex.act = 22 - goto st157 - tr347: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:211 - lex.act = 25 - goto st157 - tr353: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:209 - lex.act = 23 - goto st157 - tr357: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:210 - lex.act = 24 - goto st157 - tr358: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:223 - lex.act = 37 - goto st157 - tr366: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:212 - lex.act = 26 - goto st157 - tr371: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:214 - lex.act = 28 - goto st157 - tr374: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:215 - lex.act = 29 - goto st157 - tr386: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:216 - lex.act = 30 - goto st157 - tr393: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:218 - lex.act = 32 - goto st157 - tr394: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:219 - lex.act = 33 - goto st157 - tr399: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:220 - lex.act = 34 - goto st157 - tr403: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:221 - lex.act = 35 - goto st157 - tr405: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:222 - lex.act = 36 - goto st157 - tr411: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:224 - lex.act = 38 - goto st157 - tr419: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:226 - lex.act = 40 - goto st157 - tr425: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:228 - lex.act = 42 - goto st157 - tr431: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:230 - lex.act = 44 - goto st157 - tr433: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:231 - lex.act = 45 - goto st157 - tr434: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:232 - lex.act = 46 - goto st157 - tr445: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:234 - lex.act = 48 - goto st157 - tr458: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:257 - lex.act = 71 - goto st157 - tr466: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:235 - lex.act = 49 - goto st157 - tr470: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:236 - lex.act = 50 - goto st157 - tr476: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:237 - lex.act = 51 - goto st157 - tr479: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:233 - lex.act = 47 - goto st157 - tr482: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:238 - lex.act = 52 - goto st157 - tr491: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:239 - lex.act = 53 - goto st157 - tr492: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:269 - lex.act = 83 - goto st157 - tr493: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:271 - lex.act = 85 - goto st157 - tr500: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:242 - lex.act = 56 - goto st157 - tr503: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:240 - lex.act = 54 - goto st157 - tr509: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:243 - lex.act = 57 - goto st157 - tr513: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:241 - lex.act = 55 - goto st157 - tr526: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:259 - lex.act = 73 - goto st157 - tr529: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:244 - lex.act = 58 - goto st157 - tr535: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:245 - lex.act = 59 - goto st157 - tr539: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:246 - lex.act = 60 - goto st157 - tr544: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:247 - lex.act = 61 - goto st157 - tr546: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:249 - lex.act = 63 - goto st157 - tr548: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:248 - lex.act = 62 - goto st157 - tr553: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:250 - lex.act = 64 - goto st157 - tr554: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:251 - lex.act = 65 - goto st157 - tr556: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:252 - lex.act = 66 - goto st157 - tr560: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:253 - lex.act = 67 - goto st157 - tr562: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:272 - lex.act = 86 - goto st157 - tr571: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:254 - lex.act = 68 - goto st157 - tr587: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:260 - lex.act = 74 - goto st157 - tr591: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:261 - lex.act = 75 - goto st157 - tr597: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:262 - lex.act = 76 - goto st157 - tr605: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:263 - lex.act = 77 - goto st157 - tr617: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:268 - lex.act = 82 - goto st157 - tr622: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:264 - lex.act = 78 - goto st157 - tr629: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:266 - lex.act = 80 - goto st157 - tr639: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:265 - lex.act = 79 - goto st157 - tr645: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:267 - lex.act = 81 - goto st157 + goto tr286 st157: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof157 } st_case_157: -//line scanner/scanner.go:5980 - if lex.data[(lex.p)] == 96 { - goto tr8 + switch lex.data[(lex.p)] { + case 61: + goto st158 + case 62: + goto tr289 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr8 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr8 - } - case lex.data[(lex.p)] >= 91: - goto tr8 - } - default: - goto tr8 - } - goto tr201 + goto tr239 st158: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof158 } st_case_158: - switch lex.data[(lex.p)] { - case 83: - goto st159 - case 96: - goto tr289 - case 115: - goto st159 + if lex.data[(lex.p)] == 61 { + goto tr291 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 - } - case lex.data[(lex.p)] >= 91: - goto tr289 - } - default: - goto tr289 - } - goto tr201 + goto tr290 st159: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof159 } st_case_159: switch lex.data[(lex.p)] { - case 84: - goto st160 - case 96: - goto tr289 - case 116: + case 61: + goto tr292 + case 62: goto st160 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 - } - case lex.data[(lex.p)] >= 91: - goto tr289 - } - default: - goto tr289 - } - goto tr201 + goto tr239 st160: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof160 } st_case_160: - switch lex.data[(lex.p)] { - case 82: - goto st161 - case 96: - goto tr289 - case 114: - goto st161 + if lex.data[(lex.p)] == 61 { + goto tr295 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 - } - case lex.data[(lex.p)] >= 91: - goto tr289 - } - default: - goto tr289 - } - goto tr201 + goto tr294 st161: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof161 } st_case_161: switch lex.data[(lex.p)] { - case 65: - goto st162 - case 96: - goto tr289 - case 97: - goto st162 + case 62: + goto tr296 + case 63: + goto st164 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 - } - case lex.data[(lex.p)] >= 91: - goto tr289 - } - default: - goto tr289 - } - goto tr201 + goto tr239 + tr296: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st162 st162: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof162 } st_case_162: +//line scanner/scanner.go:5687 switch lex.data[(lex.p)] { - case 67: - goto st163 - case 96: - goto tr289 - case 99: + case 10: goto st163 + case 13: + goto st90 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 - } - case lex.data[(lex.p)] >= 91: - goto tr289 - } - default: - goto tr289 - } - goto tr201 + goto tr298 st163: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof163 } st_case_163: - switch lex.data[(lex.p)] { - case 84: - goto tr299 - case 96: - goto tr289 - case 116: - goto tr299 + goto tr300 + st90: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof90 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 - } - case lex.data[(lex.p)] >= 91: - goto tr289 - } - default: - goto tr289 + st_case_90: + if lex.data[(lex.p)] == 10 { + goto st163 } - goto tr201 + goto tr125 st164: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof164 } st_case_164: - switch lex.data[(lex.p)] { - case 68: - goto tr300 - case 96: - goto tr289 - case 100: - goto tr300 + if lex.data[(lex.p)] == 61 { + goto tr302 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 - } - case lex.data[(lex.p)] >= 91: - goto tr289 - } - default: - goto tr289 - } - goto tr201 + goto tr301 st165: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof165 } st_case_165: switch lex.data[(lex.p)] { + case 66: + goto st167 + case 78: + goto st173 case 82: - goto st166 + goto st174 + case 83: + goto tr307 case 96: - goto tr289 + goto tr303 + case 98: + goto st167 + case 110: + goto st173 case 114: - goto st166 + goto st174 + case 115: + goto tr307 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 + tr211: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:356 + lex.act = 135 + goto st166 + tr307: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:214 + lex.act = 16 + goto st166 + tr313: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:212 + lex.act = 14 + goto st166 + tr314: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:285 + lex.act = 87 + goto st166 + tr317: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:213 + lex.act = 15 + goto st166 + tr322: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:215 + lex.act = 17 + goto st166 + tr334: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:216 + lex.act = 18 + goto st166 + tr335: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:217 + lex.act = 19 + goto st166 + tr337: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:218 + lex.act = 20 + goto st166 + tr344: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:243 + lex.act = 45 + goto st166 + tr348: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:219 + lex.act = 21 + goto st166 + tr350: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:220 + lex.act = 22 + goto st166 + tr354: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:221 + lex.act = 23 + goto st166 + tr358: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:222 + lex.act = 24 + goto st166 + tr361: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:225 + lex.act = 27 + goto st166 + tr367: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:223 + lex.act = 25 + goto st166 + tr371: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:224 + lex.act = 26 + goto st166 + tr372: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:237 + lex.act = 39 + goto st166 + tr380: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:226 + lex.act = 28 + goto st166 + tr385: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:228 + lex.act = 30 + goto st166 + tr388: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:229 + lex.act = 31 + goto st166 + tr400: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:230 + lex.act = 32 + goto st166 + tr407: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:232 + lex.act = 34 + goto st166 + tr408: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:233 + lex.act = 35 + goto st166 + tr413: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:234 + lex.act = 36 + goto st166 + tr417: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:235 + lex.act = 37 + goto st166 + tr419: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:236 + lex.act = 38 + goto st166 + tr425: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:238 + lex.act = 40 + goto st166 + tr427: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:244 + lex.act = 46 + goto st166 + tr434: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:240 + lex.act = 42 + goto st166 + tr440: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:242 + lex.act = 44 + goto st166 + tr446: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:245 + lex.act = 47 + goto st166 + tr448: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:246 + lex.act = 48 + goto st166 + tr449: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:247 + lex.act = 49 + goto st166 + tr460: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:249 + lex.act = 51 + goto st166 + tr473: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:272 + lex.act = 74 + goto st166 + tr481: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:250 + lex.act = 52 + goto st166 + tr485: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:251 + lex.act = 53 + goto st166 + tr491: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:252 + lex.act = 54 + goto st166 + tr494: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:248 + lex.act = 50 + goto st166 + tr497: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:253 + lex.act = 55 + goto st166 + tr506: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:254 + lex.act = 56 + goto st166 + tr507: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:284 + lex.act = 86 + goto st166 + tr508: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:286 + lex.act = 88 + goto st166 + tr515: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:257 + lex.act = 59 + goto st166 + tr518: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:255 + lex.act = 57 + goto st166 + tr524: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:258 + lex.act = 60 + goto st166 + tr528: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:256 + lex.act = 58 + goto st166 + tr541: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:274 + lex.act = 76 + goto st166 + tr544: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:259 + lex.act = 61 + goto st166 + tr550: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:260 + lex.act = 62 + goto st166 + tr554: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:261 + lex.act = 63 + goto st166 + tr559: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:262 + lex.act = 64 + goto st166 + tr561: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:264 + lex.act = 66 + goto st166 + tr563: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:263 + lex.act = 65 + goto st166 + tr568: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:265 + lex.act = 67 + goto st166 + tr569: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:266 + lex.act = 68 + goto st166 + tr571: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:267 + lex.act = 69 + goto st166 + tr575: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:268 + lex.act = 70 + goto st166 + tr577: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:287 + lex.act = 89 + goto st166 + tr586: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:269 + lex.act = 71 + goto st166 + tr602: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:275 + lex.act = 77 + goto st166 + tr606: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:276 + lex.act = 78 + goto st166 + tr612: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:277 + lex.act = 79 + goto st166 + tr620: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:278 + lex.act = 80 + goto st166 + tr632: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:283 + lex.act = 85 + goto st166 + tr637: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:279 + lex.act = 81 + goto st166 + tr644: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:281 + lex.act = 83 + goto st166 + tr654: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:280 + lex.act = 82 + goto st166 + tr660: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:282 + lex.act = 84 + goto st166 st166: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof166 } st_case_166: - switch lex.data[(lex.p)] { - case 65: - goto st167 - case 96: - goto tr289 - case 97: - goto st167 +//line scanner/scanner.go:6257 + if lex.data[(lex.p)] == 96 { + goto tr11 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr11 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr11 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr11 } default: - goto tr289 + goto tr11 } - goto tr201 + goto tr211 st167: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof167 } st_case_167: switch lex.data[(lex.p)] { - case 89: - goto tr303 + case 83: + goto st168 case 96: - goto tr289 - case 121: goto tr303 + case 115: + goto st168 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 - tr195: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:340 - lex.act = 131 - goto st168 + goto tr211 st168: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof168 } st_case_168: -//line scanner/scanner.go:6324 switch lex.data[(lex.p)] { - case 34: - goto st6 - case 60: - goto st88 - case 82: + case 84: goto st169 case 96: - goto tr289 - case 114: + goto tr303 + case 116: goto st169 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 - st88: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof88 - } - st_case_88: - if lex.data[(lex.p)] == 60 { - goto st89 - } - goto tr121 - st89: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof89 - } - st_case_89: - if lex.data[(lex.p)] == 60 { - goto st79 - } - goto tr121 + goto tr211 st169: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof169 } st_case_169: switch lex.data[(lex.p)] { - case 69: + case 82: goto st170 case 96: - goto tr289 - case 101: + goto tr303 + case 114: goto st170 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st170: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof170 @@ -7504,172 +7517,152 @@ func (lex *Lexer) Lex(lval Lval) int { case 65: goto st171 case 96: - goto tr289 + goto tr303 case 97: goto st171 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st171: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof171 } st_case_171: switch lex.data[(lex.p)] { - case 75: - goto tr308 + case 67: + goto st172 case 96: - goto tr289 - case 107: - goto tr308 + goto tr303 + case 99: + goto st172 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st172: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof172 } st_case_172: switch lex.data[(lex.p)] { - case 65: - goto st173 - case 70: - goto st182 - case 76: - goto st189 - case 79: - goto st194 + case 84: + goto tr313 case 96: - goto tr289 - case 97: - goto st173 - case 102: - goto st182 - case 108: - goto st189 - case 111: - goto st194 + goto tr303 + case 116: + goto tr313 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st173: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof173 } st_case_173: switch lex.data[(lex.p)] { - case 76: - goto st174 - case 83: - goto st179 - case 84: - goto st180 + case 68: + goto tr314 case 96: - goto tr289 - case 108: - goto st174 - case 115: - goto st179 - case 116: - goto st180 + goto tr303 + case 100: + goto tr314 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st174: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof174 } st_case_174: switch lex.data[(lex.p)] { - case 76: + case 82: goto st175 case 96: - goto tr289 - case 108: + goto tr303 + case 114: goto st175 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st175: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof175 @@ -7679,90 +7672,120 @@ func (lex *Lexer) Lex(lval Lval) int { case 65: goto st176 case 96: - goto tr289 + goto tr303 case 97: goto st176 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st176: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof176 } st_case_176: switch lex.data[(lex.p)] { - case 66: - goto st177 + case 89: + goto tr317 case 96: - goto tr289 - case 98: - goto st177 + goto tr303 + case 121: + goto tr317 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 + tr205: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:356 + lex.act = 135 + goto st177 st177: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof177 } st_case_177: +//line scanner/scanner.go:6601 switch lex.data[(lex.p)] { - case 76: + case 34: + goto st7 + case 60: + goto st91 + case 82: goto st178 case 96: - goto tr289 - case 108: + goto tr303 + case 114: goto st178 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 + st91: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof91 + } + st_case_91: + if lex.data[(lex.p)] == 60 { + goto st92 + } + goto tr127 + st92: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof92 + } + st_case_92: + if lex.data[(lex.p)] == 60 { + goto st82 + } + goto tr127 st178: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof178 @@ -7770,437 +7793,453 @@ func (lex *Lexer) Lex(lval Lval) int { st_case_178: switch lex.data[(lex.p)] { case 69: - goto tr320 + goto st179 case 96: - goto tr289 + goto tr303 case 101: - goto tr320 + goto st179 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st179: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof179 } st_case_179: switch lex.data[(lex.p)] { - case 69: - goto tr321 + case 65: + goto st180 case 96: - goto tr289 - case 101: - goto tr321 + goto tr303 + case 97: + goto st180 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st180: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof180 } st_case_180: switch lex.data[(lex.p)] { - case 67: - goto st181 + case 75: + goto tr322 case 96: - goto tr289 - case 99: - goto st181 + goto tr303 + case 107: + goto tr322 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st181: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof181 } st_case_181: switch lex.data[(lex.p)] { - case 72: - goto tr323 + case 65: + goto st182 + case 70: + goto st191 + case 76: + goto st198 + case 79: + goto st203 case 96: - goto tr289 - case 104: - goto tr323 + goto tr303 + case 97: + goto st182 + case 102: + goto st191 + case 108: + goto st198 + case 111: + goto st203 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st182: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof182 } st_case_182: switch lex.data[(lex.p)] { - case 85: + case 76: goto st183 + case 83: + goto st188 + case 84: + goto st189 case 96: - goto tr289 - case 117: + goto tr303 + case 108: goto st183 + case 115: + goto st188 + case 116: + goto st189 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st183: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof183 } st_case_183: switch lex.data[(lex.p)] { - case 78: + case 76: goto st184 case 96: - goto tr289 - case 110: + goto tr303 + case 108: goto st184 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st184: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof184 } st_case_184: switch lex.data[(lex.p)] { - case 67: + case 65: goto st185 case 96: - goto tr289 - case 99: + goto tr303 + case 97: goto st185 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st185: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof185 } st_case_185: switch lex.data[(lex.p)] { - case 84: + case 66: goto st186 case 96: - goto tr289 - case 116: + goto tr303 + case 98: goto st186 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st186: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof186 } st_case_186: switch lex.data[(lex.p)] { - case 73: + case 76: goto st187 case 96: - goto tr289 - case 105: + goto tr303 + case 108: goto st187 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st187: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof187 } st_case_187: switch lex.data[(lex.p)] { - case 79: - goto st188 + case 69: + goto tr334 case 96: - goto tr289 - case 111: - goto st188 + goto tr303 + case 101: + goto tr334 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st188: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof188 } st_case_188: switch lex.data[(lex.p)] { - case 78: - goto tr330 + case 69: + goto tr335 case 96: - goto tr289 - case 110: - goto tr330 + goto tr303 + case 101: + goto tr335 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st189: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof189 } st_case_189: switch lex.data[(lex.p)] { - case 65: + case 67: goto st190 - case 79: - goto st192 case 96: - goto tr289 - case 97: + goto tr303 + case 99: goto st190 - case 111: - goto st192 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st190: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof190 } st_case_190: switch lex.data[(lex.p)] { - case 83: - goto st191 + case 72: + goto tr337 case 96: - goto tr289 - case 115: - goto st191 + goto tr303 + case 104: + goto tr337 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st191: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof191 } st_case_191: switch lex.data[(lex.p)] { - case 83: - goto tr334 + case 85: + goto st192 case 96: - goto tr289 - case 115: - goto tr334 + goto tr303 + case 117: + goto st192 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st192: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof192 @@ -8210,509 +8249,501 @@ func (lex *Lexer) Lex(lval Lval) int { case 78: goto st193 case 96: - goto tr289 + goto tr303 case 110: goto st193 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st193: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof193 } st_case_193: switch lex.data[(lex.p)] { - case 69: - goto tr336 + case 67: + goto st194 case 96: - goto tr289 - case 101: - goto tr336 + goto tr303 + case 99: + goto st194 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st194: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof194 } st_case_194: switch lex.data[(lex.p)] { - case 78: + case 84: goto st195 case 96: - goto tr289 - case 110: + goto tr303 + case 116: goto st195 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st195: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof195 } st_case_195: switch lex.data[(lex.p)] { - case 83: + case 73: goto st196 - case 84: - goto st197 case 96: - goto tr289 - case 115: + goto tr303 + case 105: goto st196 - case 116: - goto st197 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st196: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof196 } st_case_196: switch lex.data[(lex.p)] { - case 84: - goto tr340 + case 79: + goto st197 case 96: - goto tr289 - case 116: - goto tr340 + goto tr303 + case 111: + goto st197 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st197: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof197 } st_case_197: switch lex.data[(lex.p)] { - case 73: - goto st198 + case 78: + goto tr344 case 96: - goto tr289 - case 105: - goto st198 + goto tr303 + case 110: + goto tr344 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st198: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof198 } st_case_198: switch lex.data[(lex.p)] { - case 78: + case 65: goto st199 + case 79: + goto st201 case 96: - goto tr289 - case 110: + goto tr303 + case 97: goto st199 + case 111: + goto st201 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st199: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof199 } st_case_199: switch lex.data[(lex.p)] { - case 85: + case 83: goto st200 case 96: - goto tr289 - case 117: + goto tr303 + case 115: goto st200 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st200: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof200 } st_case_200: switch lex.data[(lex.p)] { - case 69: - goto tr344 + case 83: + goto tr348 case 96: - goto tr289 - case 101: - goto tr344 + goto tr303 + case 115: + goto tr348 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st201: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof201 } st_case_201: switch lex.data[(lex.p)] { - case 69: + case 78: goto st202 - case 73: - goto st211 - case 79: - goto tr347 case 96: - goto tr289 - case 101: + goto tr303 + case 110: goto st202 - case 105: - goto st211 - case 111: - goto tr347 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st202: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof202 } st_case_202: switch lex.data[(lex.p)] { - case 67: - goto st203 - case 70: - goto st207 + case 69: + goto tr350 case 96: - goto tr289 - case 99: - goto st203 - case 102: - goto st207 + goto tr303 + case 101: + goto tr350 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st203: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof203 } st_case_203: switch lex.data[(lex.p)] { - case 76: + case 78: goto st204 case 96: - goto tr289 - case 108: + goto tr303 + case 110: goto st204 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st204: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof204 } st_case_204: switch lex.data[(lex.p)] { - case 65: + case 83: goto st205 + case 84: + goto st206 case 96: - goto tr289 - case 97: + goto tr303 + case 115: goto st205 + case 116: + goto st206 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st205: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof205 } st_case_205: switch lex.data[(lex.p)] { - case 82: - goto st206 + case 84: + goto tr354 case 96: - goto tr289 - case 114: - goto st206 + goto tr303 + case 116: + goto tr354 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st206: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof206 } st_case_206: switch lex.data[(lex.p)] { - case 69: - goto tr353 + case 73: + goto st207 case 96: - goto tr289 - case 101: - goto tr353 + goto tr303 + case 105: + goto st207 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st207: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof207 } st_case_207: switch lex.data[(lex.p)] { - case 65: + case 78: goto st208 case 96: - goto tr289 - case 97: + goto tr303 + case 110: goto st208 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st208: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof208 @@ -8722,839 +8753,851 @@ func (lex *Lexer) Lex(lval Lval) int { case 85: goto st209 case 96: - goto tr289 + goto tr303 case 117: goto st209 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st209: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof209 } st_case_209: switch lex.data[(lex.p)] { - case 76: - goto st210 + case 69: + goto tr358 case 96: - goto tr289 - case 108: - goto st210 + goto tr303 + case 101: + goto tr358 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st210: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof210 } st_case_210: switch lex.data[(lex.p)] { - case 84: - goto tr357 + case 69: + goto st211 + case 73: + goto st220 + case 79: + goto tr361 case 96: - goto tr289 - case 116: - goto tr357 + goto tr303 + case 101: + goto st211 + case 105: + goto st220 + case 111: + goto tr361 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st211: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof211 } st_case_211: switch lex.data[(lex.p)] { - case 69: - goto tr358 + case 67: + goto st212 + case 70: + goto st216 case 96: - goto tr289 - case 101: - goto tr358 + goto tr303 + case 99: + goto st212 + case 102: + goto st216 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st212: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof212 } st_case_212: switch lex.data[(lex.p)] { - case 67: - goto st213 case 76: - goto st215 - case 77: - goto st219 - case 78: - goto st222 - case 86: - goto st246 - case 88: - goto st248 - case 96: - goto tr289 - case 99: goto st213 + case 96: + goto tr303 case 108: - goto st215 - case 109: - goto st219 - case 110: - goto st222 - case 118: - goto st246 - case 120: - goto st248 + goto st213 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st213: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof213 } st_case_213: switch lex.data[(lex.p)] { - case 72: + case 65: goto st214 case 96: - goto tr289 - case 104: + goto tr303 + case 97: goto st214 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st214: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof214 } st_case_214: switch lex.data[(lex.p)] { - case 79: - goto tr366 + case 82: + goto st215 case 96: - goto tr289 - case 111: - goto tr366 + goto tr303 + case 114: + goto st215 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st215: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof215 } st_case_215: switch lex.data[(lex.p)] { - case 83: - goto st216 + case 69: + goto tr367 case 96: - goto tr289 - case 115: - goto st216 + goto tr303 + case 101: + goto tr367 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st216: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof216 } st_case_216: switch lex.data[(lex.p)] { - case 69: + case 65: goto st217 case 96: - goto tr289 - case 101: + goto tr303 + case 97: goto st217 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st217: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof217 } st_case_217: switch lex.data[(lex.p)] { - case 73: + case 85: goto st218 case 96: - goto tr369 - case 105: + goto tr303 + case 117: goto st218 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr369 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr369 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr369 + goto tr303 } default: - goto tr369 + goto tr303 } - goto tr201 + goto tr211 st218: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof218 } st_case_218: switch lex.data[(lex.p)] { - case 70: - goto tr371 + case 76: + goto st219 case 96: - goto tr289 - case 102: - goto tr371 + goto tr303 + case 108: + goto st219 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st219: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof219 } st_case_219: switch lex.data[(lex.p)] { - case 80: - goto st220 + case 84: + goto tr371 case 96: - goto tr289 - case 112: - goto st220 + goto tr303 + case 116: + goto tr371 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st220: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof220 } st_case_220: switch lex.data[(lex.p)] { - case 84: - goto st221 + case 69: + goto tr372 case 96: - goto tr289 - case 116: - goto st221 + goto tr303 + case 101: + goto tr372 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st221: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof221 } st_case_221: switch lex.data[(lex.p)] { - case 89: - goto tr374 + case 67: + goto st222 + case 76: + goto st224 + case 77: + goto st228 + case 78: + goto st231 + case 86: + goto st255 + case 88: + goto st257 case 96: - goto tr289 - case 121: - goto tr374 + goto tr303 + case 99: + goto st222 + case 108: + goto st224 + case 109: + goto st228 + case 110: + goto st231 + case 118: + goto st255 + case 120: + goto st257 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st222: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof222 } st_case_222: switch lex.data[(lex.p)] { - case 68: + case 72: goto st223 case 96: - goto tr289 - case 100: + goto tr303 + case 104: goto st223 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st223: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof223 } st_case_223: switch lex.data[(lex.p)] { - case 68: - goto st224 - case 70: - goto st230 - case 73: - goto st236 - case 83: - goto st237 - case 87: - goto st242 + case 79: + goto tr380 case 96: - goto tr289 - case 100: - goto st224 - case 102: - goto st230 - case 105: - goto st236 - case 115: - goto st237 - case 119: - goto st242 + goto tr303 + case 111: + goto tr380 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st224: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof224 } st_case_224: switch lex.data[(lex.p)] { - case 69: + case 83: goto st225 case 96: - goto tr289 - case 101: + goto tr303 + case 115: goto st225 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st225: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof225 } st_case_225: switch lex.data[(lex.p)] { - case 67: + case 69: goto st226 case 96: - goto tr289 - case 99: + goto tr303 + case 101: goto st226 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st226: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof226 } st_case_226: switch lex.data[(lex.p)] { - case 76: + case 73: goto st227 case 96: - goto tr289 - case 108: + goto tr383 + case 105: goto st227 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr383 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr383 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr383 } default: - goto tr289 + goto tr383 } - goto tr201 + goto tr211 st227: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof227 } st_case_227: switch lex.data[(lex.p)] { - case 65: - goto st228 + case 70: + goto tr385 case 96: - goto tr289 - case 97: - goto st228 + goto tr303 + case 102: + goto tr385 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st228: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof228 } st_case_228: switch lex.data[(lex.p)] { - case 82: + case 80: goto st229 case 96: - goto tr289 - case 114: + goto tr303 + case 112: goto st229 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st229: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof229 } st_case_229: switch lex.data[(lex.p)] { - case 69: - goto tr386 + case 84: + goto st230 case 96: - goto tr289 - case 101: - goto tr386 + goto tr303 + case 116: + goto st230 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st230: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof230 } st_case_230: switch lex.data[(lex.p)] { - case 79: - goto st231 + case 89: + goto tr388 case 96: - goto tr289 - case 111: - goto st231 + goto tr303 + case 121: + goto tr388 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st231: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof231 } st_case_231: switch lex.data[(lex.p)] { - case 82: + case 68: goto st232 case 96: - goto tr289 - case 114: + goto tr303 + case 100: goto st232 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st232: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof232 } st_case_232: switch lex.data[(lex.p)] { - case 69: + case 68: goto st233 + case 70: + goto st239 + case 73: + goto st245 + case 83: + goto st246 + case 87: + goto st251 case 96: - goto tr389 - case 101: + goto tr303 + case 100: goto st233 + case 102: + goto st239 + case 105: + goto st245 + case 115: + goto st246 + case 119: + goto st251 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr389 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr389 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr389 + goto tr303 } default: - goto tr389 + goto tr303 } - goto tr201 + goto tr211 st233: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof233 } st_case_233: switch lex.data[(lex.p)] { - case 65: + case 69: goto st234 case 96: - goto tr289 - case 97: + goto tr303 + case 101: goto st234 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st234: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof234 @@ -9564,1265 +9607,1253 @@ func (lex *Lexer) Lex(lval Lval) int { case 67: goto st235 case 96: - goto tr289 + goto tr303 case 99: goto st235 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st235: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof235 } st_case_235: switch lex.data[(lex.p)] { - case 72: - goto tr393 + case 76: + goto st236 case 96: - goto tr289 - case 104: - goto tr393 + goto tr303 + case 108: + goto st236 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st236: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof236 } st_case_236: switch lex.data[(lex.p)] { - case 70: - goto tr394 + case 65: + goto st237 case 96: - goto tr289 - case 102: - goto tr394 + goto tr303 + case 97: + goto st237 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st237: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof237 } st_case_237: switch lex.data[(lex.p)] { - case 87: + case 82: goto st238 case 96: - goto tr289 - case 119: + goto tr303 + case 114: goto st238 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st238: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof238 } st_case_238: switch lex.data[(lex.p)] { - case 73: - goto st239 + case 69: + goto tr400 case 96: - goto tr289 - case 105: - goto st239 + goto tr303 + case 101: + goto tr400 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st239: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof239 } st_case_239: switch lex.data[(lex.p)] { - case 84: + case 79: goto st240 case 96: - goto tr289 - case 116: + goto tr303 + case 111: goto st240 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st240: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof240 } st_case_240: switch lex.data[(lex.p)] { - case 67: + case 82: goto st241 case 96: - goto tr289 - case 99: + goto tr303 + case 114: goto st241 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st241: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof241 } st_case_241: switch lex.data[(lex.p)] { - case 72: - goto tr399 + case 69: + goto st242 case 96: - goto tr289 - case 104: - goto tr399 + goto tr403 + case 101: + goto st242 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr403 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr403 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr403 } default: - goto tr289 + goto tr403 } - goto tr201 + goto tr211 st242: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof242 } st_case_242: switch lex.data[(lex.p)] { - case 72: + case 65: goto st243 case 96: - goto tr289 - case 104: + goto tr303 + case 97: goto st243 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st243: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof243 } st_case_243: switch lex.data[(lex.p)] { - case 73: + case 67: goto st244 case 96: - goto tr289 - case 105: + goto tr303 + case 99: goto st244 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st244: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof244 } st_case_244: switch lex.data[(lex.p)] { - case 76: - goto st245 + case 72: + goto tr407 case 96: - goto tr289 - case 108: - goto st245 + goto tr303 + case 104: + goto tr407 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st245: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof245 } st_case_245: switch lex.data[(lex.p)] { - case 69: - goto tr403 + case 70: + goto tr408 case 96: - goto tr289 - case 101: - goto tr403 + goto tr303 + case 102: + goto tr408 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st246: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof246 } st_case_246: switch lex.data[(lex.p)] { - case 65: + case 87: goto st247 case 96: - goto tr289 - case 97: + goto tr303 + case 119: goto st247 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st247: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof247 } st_case_247: switch lex.data[(lex.p)] { - case 76: - goto tr405 + case 73: + goto st248 case 96: - goto tr289 - case 108: - goto tr405 + goto tr303 + case 105: + goto st248 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st248: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof248 } st_case_248: switch lex.data[(lex.p)] { - case 73: - goto st249 case 84: - goto st250 - case 96: - goto tr289 - case 105: goto st249 + case 96: + goto tr303 case 116: - goto st250 + goto st249 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st249: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof249 } st_case_249: switch lex.data[(lex.p)] { - case 84: - goto tr358 + case 67: + goto st250 case 96: - goto tr289 - case 116: - goto tr358 + goto tr303 + case 99: + goto st250 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st250: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof250 } st_case_250: switch lex.data[(lex.p)] { - case 69: - goto st251 + case 72: + goto tr413 case 96: - goto tr289 - case 101: - goto st251 + goto tr303 + case 104: + goto tr413 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st251: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof251 } st_case_251: switch lex.data[(lex.p)] { - case 78: + case 72: goto st252 case 96: - goto tr289 - case 110: + goto tr303 + case 104: goto st252 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st252: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof252 } st_case_252: switch lex.data[(lex.p)] { - case 68: + case 73: goto st253 case 96: - goto tr289 - case 100: + goto tr303 + case 105: goto st253 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st253: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof253 } st_case_253: switch lex.data[(lex.p)] { - case 83: - goto tr411 + case 76: + goto st254 case 96: - goto tr289 - case 115: - goto tr411 + goto tr303 + case 108: + goto st254 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st254: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof254 } st_case_254: switch lex.data[(lex.p)] { - case 73: - goto st255 - case 79: - goto st260 - case 85: - goto st183 + case 69: + goto tr417 case 96: - goto tr289 - case 105: - goto st255 - case 111: - goto st260 - case 117: - goto st183 + goto tr303 + case 101: + goto tr417 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st255: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof255 } st_case_255: switch lex.data[(lex.p)] { - case 78: + case 65: goto st256 case 96: - goto tr289 - case 110: + goto tr303 + case 97: goto st256 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st256: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof256 } st_case_256: switch lex.data[(lex.p)] { - case 65: - goto st257 + case 76: + goto tr419 case 96: - goto tr289 - case 97: - goto st257 + goto tr303 + case 108: + goto tr419 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st257: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof257 } st_case_257: switch lex.data[(lex.p)] { - case 76: + case 73: goto st258 + case 84: + goto st259 case 96: - goto tr289 - case 108: + goto tr303 + case 105: goto st258 + case 116: + goto st259 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st258: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof258 } st_case_258: switch lex.data[(lex.p)] { - case 76: - goto st259 + case 84: + goto tr372 case 96: - goto tr417 - case 108: - goto st259 + goto tr303 + case 116: + goto tr372 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr417 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr417 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr417 + goto tr303 } default: - goto tr417 + goto tr303 } - goto tr201 + goto tr211 st259: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof259 } st_case_259: switch lex.data[(lex.p)] { - case 89: - goto tr419 + case 69: + goto st260 case 96: - goto tr289 - case 121: - goto tr419 + goto tr303 + case 101: + goto st260 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st260: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof260 } st_case_260: switch lex.data[(lex.p)] { - case 82: + case 78: goto st261 case 96: - goto tr289 - case 114: + goto tr303 + case 110: goto st261 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st261: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof261 } st_case_261: switch lex.data[(lex.p)] { - case 69: + case 68: goto st262 case 96: - goto tr421 - case 101: + goto tr303 + case 100: goto st262 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr421 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr421 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr421 + goto tr303 } default: - goto tr421 + goto tr303 } - goto tr201 + goto tr211 st262: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof262 } st_case_262: switch lex.data[(lex.p)] { - case 65: - goto st263 + case 83: + goto tr425 case 96: - goto tr289 - case 97: - goto st263 + goto tr303 + case 115: + goto tr425 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st263: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof263 } st_case_263: switch lex.data[(lex.p)] { - case 67: + case 73: goto st264 + case 78: + goto tr427 + case 79: + goto st269 + case 85: + goto st192 case 96: - goto tr289 - case 99: + goto tr303 + case 105: goto st264 + case 110: + goto tr427 + case 111: + goto st269 + case 117: + goto st192 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st264: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof264 } st_case_264: switch lex.data[(lex.p)] { - case 72: - goto tr425 + case 78: + goto st265 case 96: - goto tr289 - case 104: - goto tr425 + goto tr303 + case 110: + goto st265 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st265: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof265 } st_case_265: switch lex.data[(lex.p)] { - case 76: + case 65: goto st266 - case 79: - goto st270 case 96: - goto tr289 - case 108: + goto tr303 + case 97: goto st266 - case 111: - goto st270 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st266: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof266 } st_case_266: switch lex.data[(lex.p)] { - case 79: + case 76: goto st267 case 96: - goto tr289 - case 111: + goto tr303 + case 108: goto st267 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st267: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof267 } st_case_267: switch lex.data[(lex.p)] { - case 66: + case 76: goto st268 case 96: - goto tr289 - case 98: + goto tr432 + case 108: goto st268 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr432 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr432 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr432 } default: - goto tr289 + goto tr432 } - goto tr201 + goto tr211 st268: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof268 } st_case_268: switch lex.data[(lex.p)] { - case 65: - goto st269 + case 89: + goto tr434 case 96: - goto tr289 - case 97: - goto st269 + goto tr303 + case 121: + goto tr434 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st269: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof269 } st_case_269: switch lex.data[(lex.p)] { - case 76: - goto tr431 + case 82: + goto st270 case 96: - goto tr289 - case 108: - goto tr431 + goto tr303 + case 114: + goto st270 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st270: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof270 } st_case_270: switch lex.data[(lex.p)] { - case 84: + case 69: goto st271 case 96: - goto tr289 - case 116: + goto tr436 + case 101: goto st271 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr436 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr436 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr436 } default: - goto tr289 + goto tr436 } - goto tr201 + goto tr211 st271: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof271 } st_case_271: switch lex.data[(lex.p)] { - case 79: - goto tr433 + case 65: + goto st272 case 96: - goto tr289 - case 111: - goto tr433 + goto tr303 + case 97: + goto st272 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st272: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof272 } st_case_272: switch lex.data[(lex.p)] { - case 70: - goto tr434 - case 77: + case 67: goto st273 - case 78: - goto st281 - case 83: - goto st308 case 96: - goto tr289 - case 102: - goto tr434 - case 109: + goto tr303 + case 99: goto st273 - case 110: - goto st281 - case 115: - goto st308 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st273: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof273 } st_case_273: switch lex.data[(lex.p)] { - case 80: - goto st274 + case 72: + goto tr440 case 96: - goto tr289 - case 112: - goto st274 + goto tr303 + case 104: + goto tr440 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st274: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof274 @@ -10831,153 +10862,157 @@ func (lex *Lexer) Lex(lval Lval) int { switch lex.data[(lex.p)] { case 76: goto st275 + case 79: + goto st279 case 96: - goto tr289 + goto tr303 case 108: goto st275 + case 111: + goto st279 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st275: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof275 } st_case_275: switch lex.data[(lex.p)] { - case 69: + case 79: goto st276 case 96: - goto tr289 - case 101: + goto tr303 + case 111: goto st276 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st276: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof276 } st_case_276: switch lex.data[(lex.p)] { - case 77: + case 66: goto st277 case 96: - goto tr289 - case 109: + goto tr303 + case 98: goto st277 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st277: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof277 } st_case_277: switch lex.data[(lex.p)] { - case 69: + case 65: goto st278 case 96: - goto tr289 - case 101: + goto tr303 + case 97: goto st278 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st278: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof278 } st_case_278: switch lex.data[(lex.p)] { - case 78: - goto st279 + case 76: + goto tr446 case 96: - goto tr289 - case 110: - goto st279 + goto tr303 + case 108: + goto tr446 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st279: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof279 @@ -10987,531 +11022,539 @@ func (lex *Lexer) Lex(lval Lval) int { case 84: goto st280 case 96: - goto tr289 + goto tr303 case 116: goto st280 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st280: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof280 } st_case_280: switch lex.data[(lex.p)] { - case 83: - goto tr445 + case 79: + goto tr448 case 96: - goto tr289 - case 115: - goto tr445 + goto tr303 + case 111: + goto tr448 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st281: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof281 } st_case_281: switch lex.data[(lex.p)] { - case 67: + case 70: + goto tr449 + case 77: goto st282 + case 78: + goto st290 case 83: - goto st291 - case 84: - goto st302 + goto st317 case 96: - goto tr289 - case 99: + goto tr303 + case 102: + goto tr449 + case 109: goto st282 + case 110: + goto st290 case 115: - goto st291 - case 116: - goto st302 + goto st317 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st282: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof282 } st_case_282: switch lex.data[(lex.p)] { - case 76: + case 80: goto st283 case 96: - goto tr289 - case 108: + goto tr303 + case 112: goto st283 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st283: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof283 } st_case_283: switch lex.data[(lex.p)] { - case 85: + case 76: goto st284 case 96: - goto tr289 - case 117: + goto tr303 + case 108: goto st284 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st284: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof284 } st_case_284: switch lex.data[(lex.p)] { - case 68: + case 69: goto st285 case 96: - goto tr289 - case 100: + goto tr303 + case 101: goto st285 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st285: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof285 } st_case_285: switch lex.data[(lex.p)] { - case 69: + case 77: goto st286 case 96: - goto tr289 - case 101: + goto tr303 + case 109: goto st286 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st286: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof286 } st_case_286: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 69: + goto st287 + case 96: + goto tr303 + case 101: goto st287 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr453 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr453 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr453 + goto tr303 } default: - goto tr453 + goto tr303 } - goto tr201 + goto tr211 st287: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof287 } st_case_287: switch lex.data[(lex.p)] { - case 79: + case 78: goto st288 case 96: - goto tr289 - case 111: + goto tr303 + case 110: goto st288 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st288: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof288 } st_case_288: switch lex.data[(lex.p)] { - case 78: + case 84: goto st289 case 96: - goto tr289 - case 110: + goto tr303 + case 116: goto st289 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st289: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof289 } st_case_289: switch lex.data[(lex.p)] { - case 67: - goto st290 + case 83: + goto tr460 case 96: - goto tr289 - case 99: - goto st290 + goto tr303 + case 115: + goto tr460 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st290: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof290 } st_case_290: switch lex.data[(lex.p)] { - case 69: - goto tr458 + case 67: + goto st291 + case 83: + goto st300 + case 84: + goto st311 case 96: - goto tr289 - case 101: - goto tr458 + goto tr303 + case 99: + goto st291 + case 115: + goto st300 + case 116: + goto st311 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st291: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof291 } st_case_291: switch lex.data[(lex.p)] { - case 84: + case 76: goto st292 case 96: - goto tr289 - case 116: + goto tr303 + case 108: goto st292 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st292: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof292 } st_case_292: switch lex.data[(lex.p)] { - case 65: + case 85: goto st293 - case 69: - goto st298 case 96: - goto tr289 - case 97: + goto tr303 + case 117: goto st293 - case 101: - goto st298 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st293: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof293 } st_case_293: switch lex.data[(lex.p)] { - case 78: + case 68: goto st294 case 96: - goto tr289 - case 110: + goto tr303 + case 100: goto st294 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st294: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof294 } st_case_294: switch lex.data[(lex.p)] { - case 67: + case 69: goto st295 case 96: - goto tr289 - case 99: + goto tr303 + case 101: goto st295 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st295: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof295 } st_case_295: - switch lex.data[(lex.p)] { - case 69: - goto st296 - case 96: - goto tr289 - case 101: + if lex.data[(lex.p)] == 95 { goto st296 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr468 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr468 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr468 } default: - goto tr289 + goto tr468 } - goto tr201 + goto tr211 st296: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof296 @@ -11521,555 +11564,559 @@ func (lex *Lexer) Lex(lval Lval) int { case 79: goto st297 case 96: - goto tr289 + goto tr303 case 111: goto st297 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st297: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof297 } st_case_297: switch lex.data[(lex.p)] { - case 70: - goto tr466 + case 78: + goto st298 case 96: - goto tr289 - case 102: - goto tr466 + goto tr303 + case 110: + goto st298 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st298: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof298 } st_case_298: switch lex.data[(lex.p)] { - case 65: + case 67: goto st299 case 96: - goto tr289 - case 97: + goto tr303 + case 99: goto st299 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st299: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof299 } st_case_299: switch lex.data[(lex.p)] { - case 68: - goto st300 + case 69: + goto tr473 case 96: - goto tr289 - case 100: - goto st300 + goto tr303 + case 101: + goto tr473 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st300: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof300 } st_case_300: switch lex.data[(lex.p)] { - case 79: + case 84: goto st301 case 96: - goto tr289 - case 111: + goto tr303 + case 116: goto st301 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st301: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof301 } st_case_301: switch lex.data[(lex.p)] { - case 70: - goto tr470 + case 65: + goto st302 + case 69: + goto st307 case 96: - goto tr289 - case 102: - goto tr470 + goto tr303 + case 97: + goto st302 + case 101: + goto st307 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st302: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof302 } st_case_302: switch lex.data[(lex.p)] { - case 69: + case 78: goto st303 case 96: - goto tr289 - case 101: + goto tr303 + case 110: goto st303 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st303: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof303 } st_case_303: switch lex.data[(lex.p)] { - case 82: + case 67: goto st304 case 96: - goto tr289 - case 114: + goto tr303 + case 99: goto st304 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st304: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof304 } st_case_304: switch lex.data[(lex.p)] { - case 70: + case 69: goto st305 case 96: - goto tr289 - case 102: + goto tr303 + case 101: goto st305 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st305: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof305 } st_case_305: switch lex.data[(lex.p)] { - case 65: + case 79: goto st306 case 96: - goto tr289 - case 97: + goto tr303 + case 111: goto st306 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st306: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof306 } st_case_306: switch lex.data[(lex.p)] { - case 67: - goto st307 + case 70: + goto tr481 case 96: - goto tr289 - case 99: - goto st307 + goto tr303 + case 102: + goto tr481 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st307: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof307 } st_case_307: switch lex.data[(lex.p)] { - case 69: - goto tr476 + case 65: + goto st308 case 96: - goto tr289 - case 101: - goto tr476 + goto tr303 + case 97: + goto st308 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st308: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof308 } st_case_308: switch lex.data[(lex.p)] { - case 83: + case 68: goto st309 case 96: - goto tr289 - case 115: + goto tr303 + case 100: goto st309 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st309: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof309 } st_case_309: switch lex.data[(lex.p)] { - case 69: + case 79: goto st310 case 96: - goto tr289 - case 101: + goto tr303 + case 111: goto st310 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st310: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof310 } st_case_310: switch lex.data[(lex.p)] { - case 84: - goto tr479 + case 70: + goto tr485 case 96: - goto tr289 - case 116: - goto tr479 + goto tr303 + case 102: + goto tr485 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st311: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof311 } st_case_311: switch lex.data[(lex.p)] { - case 73: + case 69: goto st312 case 96: - goto tr289 - case 105: + goto tr303 + case 101: goto st312 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st312: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof312 } st_case_312: switch lex.data[(lex.p)] { - case 83: + case 82: goto st313 case 96: - goto tr289 - case 115: + goto tr303 + case 114: goto st313 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st313: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof313 } st_case_313: switch lex.data[(lex.p)] { - case 84: - goto tr482 + case 70: + goto st314 case 96: - goto tr289 - case 116: - goto tr482 + goto tr303 + case 102: + goto st314 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st314: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof314 @@ -12078,64 +12125,60 @@ func (lex *Lexer) Lex(lval Lval) int { switch lex.data[(lex.p)] { case 65: goto st315 - case 69: - goto st322 case 96: - goto tr289 + goto tr303 case 97: goto st315 - case 101: - goto st322 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st315: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof315 } st_case_315: switch lex.data[(lex.p)] { - case 77: + case 67: goto st316 case 96: - goto tr289 - case 109: + goto tr303 + case 99: goto st316 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st316: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof316 @@ -12143,30 +12186,30 @@ func (lex *Lexer) Lex(lval Lval) int { st_case_316: switch lex.data[(lex.p)] { case 69: - goto st317 + goto tr491 case 96: - goto tr289 + goto tr303 case 101: - goto st317 + goto tr491 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st317: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof317 @@ -12176,350 +12219,342 @@ func (lex *Lexer) Lex(lval Lval) int { case 83: goto st318 case 96: - goto tr289 + goto tr303 case 115: goto st318 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st318: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof318 } st_case_318: switch lex.data[(lex.p)] { - case 80: + case 69: goto st319 case 96: - goto tr289 - case 112: + goto tr303 + case 101: goto st319 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st319: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof319 } st_case_319: switch lex.data[(lex.p)] { - case 65: - goto st320 + case 84: + goto tr494 case 96: - goto tr289 - case 97: - goto st320 + goto tr303 + case 116: + goto tr494 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st320: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof320 } st_case_320: switch lex.data[(lex.p)] { - case 67: + case 73: goto st321 case 96: - goto tr289 - case 99: + goto tr303 + case 105: goto st321 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st321: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof321 } st_case_321: switch lex.data[(lex.p)] { - case 69: - goto tr491 + case 83: + goto st322 case 96: - goto tr289 - case 101: - goto tr491 + goto tr303 + case 115: + goto st322 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st322: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof322 } st_case_322: switch lex.data[(lex.p)] { - case 87: - goto tr492 + case 84: + goto tr497 case 96: - goto tr289 - case 119: - goto tr492 + goto tr303 + case 116: + goto tr497 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st323: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof323 } st_case_323: switch lex.data[(lex.p)] { - case 82: - goto tr493 + case 65: + goto st324 + case 69: + goto st331 case 96: - goto tr289 - case 114: - goto tr493 + goto tr303 + case 97: + goto st324 + case 101: + goto st331 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st324: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof324 } st_case_324: switch lex.data[(lex.p)] { - case 82: + case 77: goto st325 - case 85: - goto st337 case 96: - goto tr289 - case 114: + goto tr303 + case 109: goto st325 - case 117: - goto st337 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st325: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof325 } st_case_325: switch lex.data[(lex.p)] { - case 73: + case 69: goto st326 - case 79: - goto st331 case 96: - goto tr289 - case 105: + goto tr303 + case 101: goto st326 - case 111: - goto st331 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st326: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof326 } st_case_326: switch lex.data[(lex.p)] { - case 78: + case 83: goto st327 - case 86: - goto st328 case 96: - goto tr289 - case 110: + goto tr303 + case 115: goto st327 - case 118: - goto st328 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st327: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof327 } st_case_327: switch lex.data[(lex.p)] { - case 84: - goto tr500 + case 80: + goto st328 case 96: - goto tr289 - case 116: - goto tr500 + goto tr303 + case 112: + goto st328 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st328: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof328 @@ -12529,59 +12564,59 @@ func (lex *Lexer) Lex(lval Lval) int { case 65: goto st329 case 96: - goto tr289 + goto tr303 case 97: goto st329 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st329: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof329 } st_case_329: switch lex.data[(lex.p)] { - case 84: + case 67: goto st330 case 96: - goto tr289 - case 116: + goto tr303 + case 99: goto st330 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st330: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof330 @@ -12589,340 +12624,352 @@ func (lex *Lexer) Lex(lval Lval) int { st_case_330: switch lex.data[(lex.p)] { case 69: - goto tr503 + goto tr506 case 96: - goto tr289 + goto tr303 case 101: - goto tr503 + goto tr506 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st331: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof331 } st_case_331: switch lex.data[(lex.p)] { - case 84: - goto st332 + case 87: + goto tr507 case 96: - goto tr289 - case 116: - goto st332 + goto tr303 + case 119: + goto tr507 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st332: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof332 } st_case_332: switch lex.data[(lex.p)] { - case 69: - goto st333 + case 82: + goto tr508 case 96: - goto tr289 - case 101: - goto st333 + goto tr303 + case 114: + goto tr508 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st333: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof333 } st_case_333: switch lex.data[(lex.p)] { - case 67: + case 82: goto st334 + case 85: + goto st346 case 96: - goto tr289 - case 99: + goto tr303 + case 114: goto st334 + case 117: + goto st346 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st334: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof334 } st_case_334: switch lex.data[(lex.p)] { - case 84: + case 73: goto st335 + case 79: + goto st340 case 96: - goto tr289 - case 116: + goto tr303 + case 105: goto st335 + case 111: + goto st340 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st335: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof335 } st_case_335: switch lex.data[(lex.p)] { - case 69: + case 78: goto st336 + case 86: + goto st337 case 96: - goto tr289 - case 101: + goto tr303 + case 110: goto st336 + case 118: + goto st337 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st336: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof336 } st_case_336: switch lex.data[(lex.p)] { - case 68: - goto tr509 + case 84: + goto tr515 case 96: - goto tr289 - case 100: - goto tr509 + goto tr303 + case 116: + goto tr515 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st337: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof337 } st_case_337: switch lex.data[(lex.p)] { - case 66: + case 65: goto st338 case 96: - goto tr289 - case 98: + goto tr303 + case 97: goto st338 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st338: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof338 } st_case_338: switch lex.data[(lex.p)] { - case 76: + case 84: goto st339 case 96: - goto tr289 - case 108: + goto tr303 + case 116: goto st339 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st339: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof339 } st_case_339: switch lex.data[(lex.p)] { - case 73: - goto st340 + case 69: + goto tr518 case 96: - goto tr289 - case 105: - goto st340 + goto tr303 + case 101: + goto tr518 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st340: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof340 } st_case_340: switch lex.data[(lex.p)] { - case 67: - goto tr513 + case 84: + goto st341 case 96: - goto tr289 - case 99: - goto tr513 + goto tr303 + case 116: + goto st341 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st341: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof341 @@ -12932,337 +12979,342 @@ func (lex *Lexer) Lex(lval Lval) int { case 69: goto st342 case 96: - goto tr289 + goto tr303 case 101: goto st342 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st342: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof342 } st_case_342: switch lex.data[(lex.p)] { - case 81: + case 67: goto st343 - case 84: - goto st352 case 96: - goto tr289 - case 113: + goto tr303 + case 99: goto st343 - case 116: - goto st352 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st343: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof343 } st_case_343: switch lex.data[(lex.p)] { - case 85: + case 84: goto st344 case 96: - goto tr289 - case 117: + goto tr303 + case 116: goto st344 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st344: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof344 } st_case_344: switch lex.data[(lex.p)] { - case 73: + case 69: goto st345 case 96: - goto tr289 - case 105: + goto tr303 + case 101: goto st345 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st345: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof345 } st_case_345: switch lex.data[(lex.p)] { - case 82: - goto st346 + case 68: + goto tr524 case 96: - goto tr289 - case 114: - goto st346 + goto tr303 + case 100: + goto tr524 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st346: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof346 } st_case_346: switch lex.data[(lex.p)] { - case 69: + case 66: goto st347 case 96: - goto tr289 - case 101: + goto tr303 + case 98: goto st347 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st347: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof347 } st_case_347: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 76: + goto st348 + case 96: + goto tr303 + case 108: goto st348 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr521 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr521 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr521 + goto tr303 } default: - goto tr521 + goto tr303 } - goto tr201 + goto tr211 st348: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof348 } st_case_348: switch lex.data[(lex.p)] { - case 79: + case 73: goto st349 case 96: - goto tr289 - case 111: + goto tr303 + case 105: goto st349 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st349: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof349 } st_case_349: switch lex.data[(lex.p)] { - case 78: - goto st350 + case 67: + goto tr528 case 96: - goto tr289 - case 110: - goto st350 + goto tr303 + case 99: + goto tr528 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st350: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof350 } st_case_350: switch lex.data[(lex.p)] { - case 67: + case 69: goto st351 case 96: - goto tr289 - case 99: + goto tr303 + case 101: goto st351 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st351: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof351 } st_case_351: switch lex.data[(lex.p)] { - case 69: - goto tr526 + case 81: + goto st352 + case 84: + goto st361 case 96: - goto tr289 - case 101: - goto tr526 + goto tr303 + case 113: + goto st352 + case 116: + goto st361 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st352: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof352 @@ -13272,218 +13324,209 @@ func (lex *Lexer) Lex(lval Lval) int { case 85: goto st353 case 96: - goto tr289 + goto tr303 case 117: goto st353 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st353: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof353 } st_case_353: switch lex.data[(lex.p)] { - case 82: + case 73: goto st354 case 96: - goto tr289 - case 114: + goto tr303 + case 105: goto st354 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st354: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof354 } st_case_354: switch lex.data[(lex.p)] { - case 78: - goto tr529 + case 82: + goto st355 case 96: - goto tr289 - case 110: - goto tr529 + goto tr303 + case 114: + goto st355 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st355: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof355 } st_case_355: switch lex.data[(lex.p)] { - case 84: + case 69: goto st356 - case 87: - goto st360 case 96: - goto tr289 - case 116: + goto tr303 + case 101: goto st356 - case 119: - goto st360 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st356: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof356 } st_case_356: - switch lex.data[(lex.p)] { - case 65: - goto st357 - case 96: - goto tr289 - case 97: + if lex.data[(lex.p)] == 95 { goto st357 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr536 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr536 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr536 } default: - goto tr289 + goto tr536 } - goto tr201 + goto tr211 st357: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof357 } st_case_357: switch lex.data[(lex.p)] { - case 84: + case 79: goto st358 case 96: - goto tr289 - case 116: + goto tr303 + case 111: goto st358 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st358: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof358 } st_case_358: switch lex.data[(lex.p)] { - case 73: + case 78: goto st359 case 96: - goto tr289 - case 105: + goto tr303 + case 110: goto st359 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st359: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof359 @@ -13491,317 +13534,313 @@ func (lex *Lexer) Lex(lval Lval) int { st_case_359: switch lex.data[(lex.p)] { case 67: - goto tr535 + goto st360 case 96: - goto tr289 + goto tr303 case 99: - goto tr535 + goto st360 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st360: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof360 } st_case_360: switch lex.data[(lex.p)] { - case 73: - goto st361 + case 69: + goto tr541 case 96: - goto tr289 - case 105: - goto st361 + goto tr303 + case 101: + goto tr541 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st361: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof361 } st_case_361: switch lex.data[(lex.p)] { - case 84: + case 85: goto st362 case 96: - goto tr289 - case 116: + goto tr303 + case 117: goto st362 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st362: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof362 } st_case_362: switch lex.data[(lex.p)] { - case 67: + case 82: goto st363 case 96: - goto tr289 - case 99: + goto tr303 + case 114: goto st363 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st363: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof363 } st_case_363: switch lex.data[(lex.p)] { - case 72: - goto tr539 + case 78: + goto tr544 case 96: - goto tr289 - case 104: - goto tr539 + goto tr303 + case 110: + goto tr544 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st364: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof364 } st_case_364: switch lex.data[(lex.p)] { - case 72: + case 84: goto st365 - case 82: - goto st368 + case 87: + goto st369 case 96: - goto tr289 - case 104: + goto tr303 + case 116: goto st365 - case 114: - goto st368 + case 119: + goto st369 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st365: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof365 } st_case_365: switch lex.data[(lex.p)] { - case 82: + case 65: goto st366 case 96: - goto tr289 - case 114: + goto tr303 + case 97: goto st366 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st366: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof366 } st_case_366: switch lex.data[(lex.p)] { - case 79: + case 84: goto st367 case 96: - goto tr289 - case 111: + goto tr303 + case 116: goto st367 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st367: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof367 } st_case_367: switch lex.data[(lex.p)] { - case 87: - goto tr544 + case 73: + goto st368 case 96: - goto tr289 - case 119: - goto tr544 + goto tr303 + case 105: + goto st368 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st368: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof368 } st_case_368: switch lex.data[(lex.p)] { - case 65: - goto st369 - case 89: - goto tr546 + case 67: + goto tr550 case 96: - goto tr289 - case 97: - goto st369 - case 121: - goto tr546 + goto tr303 + case 99: + goto tr550 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st369: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof369 @@ -13811,28 +13850,28 @@ func (lex *Lexer) Lex(lval Lval) int { case 73: goto st370 case 96: - goto tr289 + goto tr303 case 105: goto st370 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st370: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof370 @@ -13840,907 +13879,786 @@ func (lex *Lexer) Lex(lval Lval) int { st_case_370: switch lex.data[(lex.p)] { case 84: - goto tr548 + goto st371 case 96: - goto tr289 + goto tr303 case 116: - goto tr548 + goto st371 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st371: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof371 } st_case_371: switch lex.data[(lex.p)] { - case 78: + case 67: goto st372 - case 83: - goto st375 case 96: - goto tr289 - case 110: + goto tr303 + case 99: goto st372 - case 115: - goto st375 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st372: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof372 } st_case_372: switch lex.data[(lex.p)] { - case 83: - goto st373 + case 72: + goto tr554 case 96: - goto tr289 - case 115: - goto st373 + goto tr303 + case 104: + goto tr554 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st373: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof373 } st_case_373: switch lex.data[(lex.p)] { - case 69: + case 72: goto st374 + case 82: + goto st377 case 96: - goto tr289 - case 101: + goto tr303 + case 104: goto st374 + case 114: + goto st377 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st374: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof374 } st_case_374: switch lex.data[(lex.p)] { - case 84: - goto tr553 + case 82: + goto st375 case 96: - goto tr289 - case 116: - goto tr553 + goto tr303 + case 114: + goto st375 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st375: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof375 } st_case_375: switch lex.data[(lex.p)] { - case 69: - goto tr554 + case 79: + goto st376 case 96: - goto tr289 - case 101: - goto tr554 + goto tr303 + case 111: + goto st376 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st376: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof376 } st_case_376: switch lex.data[(lex.p)] { - case 65: - goto st377 + case 87: + goto tr559 case 96: - goto tr289 - case 97: - goto st377 + goto tr303 + case 119: + goto tr559 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st377: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof377 } st_case_377: switch lex.data[(lex.p)] { - case 82: - goto tr556 + case 65: + goto st378 + case 89: + goto tr561 case 96: - goto tr289 - case 114: - goto tr556 + goto tr303 + case 97: + goto st378 + case 121: + goto tr561 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st378: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof378 } st_case_378: switch lex.data[(lex.p)] { - case 72: + case 73: goto st379 case 96: - goto tr289 - case 104: + goto tr303 + case 105: goto st379 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st379: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof379 } st_case_379: switch lex.data[(lex.p)] { - case 73: - goto st380 + case 84: + goto tr563 case 96: - goto tr289 - case 105: - goto st380 + goto tr303 + case 116: + goto tr563 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st380: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof380 } st_case_380: switch lex.data[(lex.p)] { - case 76: + case 78: goto st381 + case 83: + goto st384 case 96: - goto tr289 - case 108: + goto tr303 + case 110: goto st381 + case 115: + goto st384 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st381: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof381 } st_case_381: switch lex.data[(lex.p)] { - case 69: - goto tr560 + case 83: + goto st382 case 96: - goto tr289 - case 101: - goto tr560 + goto tr303 + case 115: + goto st382 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st382: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof382 } st_case_382: switch lex.data[(lex.p)] { - case 79: + case 69: goto st383 case 96: - goto tr289 - case 111: + goto tr303 + case 101: goto st383 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st383: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof383 } st_case_383: switch lex.data[(lex.p)] { - case 82: - goto tr562 + case 84: + goto tr568 case 96: - goto tr289 - case 114: - goto tr562 + goto tr303 + case 116: + goto tr568 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st384: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof384 } st_case_384: switch lex.data[(lex.p)] { - case 73: - goto st385 + case 69: + goto tr569 case 96: - goto tr289 - case 105: - goto st385 + goto tr303 + case 101: + goto tr569 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st385: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof385 } st_case_385: switch lex.data[(lex.p)] { - case 69: + case 65: goto st386 case 96: - goto tr289 - case 101: + goto tr303 + case 97: goto st386 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st386: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof386 } st_case_386: switch lex.data[(lex.p)] { - case 76: - goto st387 + case 82: + goto tr571 case 96: - goto tr289 - case 108: - goto st387 + goto tr303 + case 114: + goto tr571 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st387: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof387 } st_case_387: switch lex.data[(lex.p)] { - case 68: - goto tr566 + case 72: + goto st388 case 96: - goto tr289 - case 100: - goto tr566 + goto tr303 + case 104: + goto st388 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 - tr566: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st388 + goto tr211 st388: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof388 } st_case_388: -//line scanner/scanner.go:13314 switch lex.data[(lex.p)] { - case 10: - goto st91 - case 13: - goto st92 - case 32: - goto st90 - case 70: + case 73: goto st389 case 96: - goto tr567 - case 102: + goto tr303 + case 105: goto st389 } switch { - case lex.data[(lex.p)] < 14: - switch { - case lex.data[(lex.p)] > 8: - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st90 - } - default: - goto tr567 + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 } - case lex.data[(lex.p)] > 47: + case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] < 91: - if 58 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 64 { - goto tr567 - } case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr567 + goto tr303 } - default: - goto tr567 + case lex.data[(lex.p)] >= 91: + goto tr303 } default: - goto tr567 + goto tr303 } - goto tr201 - tr128: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st90 - st90: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof90 - } - st_case_90: -//line scanner/scanner.go:13365 - switch lex.data[(lex.p)] { - case 10: - goto st91 - case 13: - goto st92 - case 32: - goto st90 - case 70: - goto st93 - case 102: - goto st93 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto st90 - } - goto tr123 - tr129: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st91 - st91: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof91 - } - st_case_91: -//line scanner/scanner.go:13391 - switch lex.data[(lex.p)] { - case 10: - goto tr129 - case 13: - goto tr130 - case 32: - goto tr128 - case 70: - goto tr131 - case 102: - goto tr131 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr128 - } - goto tr123 - tr130: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st92 - st92: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof92 - } - st_case_92: -//line scanner/scanner.go:13417 - if lex.data[(lex.p)] == 10 { - goto st91 - } - goto tr123 - tr131: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st93 - st93: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof93 - } - st_case_93: -//line scanner/scanner.go:13431 - switch lex.data[(lex.p)] { - case 82: - goto st94 - case 114: - goto st94 - } - goto tr123 - st94: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof94 - } - st_case_94: - switch lex.data[(lex.p)] { - case 79: - goto st95 - case 111: - goto st95 - } - goto tr123 - st95: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof95 - } - st_case_95: - switch lex.data[(lex.p)] { - case 77: - goto tr134 - case 109: - goto tr134 - } - goto tr123 + goto tr211 st389: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof389 } st_case_389: switch lex.data[(lex.p)] { - case 82: + case 76: goto st390 case 96: - goto tr289 - case 114: + goto tr303 + case 108: goto st390 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st390: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof390 } st_case_390: switch lex.data[(lex.p)] { - case 79: - goto st391 + case 69: + goto tr575 case 96: - goto tr289 - case 111: - goto st391 + goto tr303 + case 101: + goto tr575 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st391: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof391 } st_case_391: switch lex.data[(lex.p)] { - case 77: - goto tr571 + case 79: + goto st392 case 96: - goto tr289 - case 109: - goto tr571 + goto tr303 + case 111: + goto st392 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st392: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof392 } st_case_392: - if lex.data[(lex.p)] == 61 { - goto tr572 + switch lex.data[(lex.p)] { + case 82: + goto tr577 + case 96: + goto tr303 + case 114: + goto tr577 } - goto tr229 + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr303 + } + case lex.data[(lex.p)] >= 91: + goto tr303 + } + default: + goto tr303 + } + goto tr211 st393: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof393 } st_case_393: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 73: + goto st394 + case 96: + goto tr303 + case 105: goto st394 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st394: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof394 } st_case_394: switch lex.data[(lex.p)] { - case 67: + case 69: goto st395 - case 68: - goto st401 - case 70: - goto st405 - case 72: - goto st418 - case 76: - goto st430 - case 77: - goto st435 - case 78: - goto st442 - case 84: - goto st452 case 96: - goto tr289 - case 99: + goto tr303 + case 101: goto st395 - case 100: - goto st401 - case 102: - goto st405 - case 104: - goto st418 - case 108: - goto st430 - case 109: - goto st435 - case 110: - goto st442 - case 116: - goto st452 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st395: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof395 @@ -14750,384 +14668,529 @@ func (lex *Lexer) Lex(lval Lval) int { case 76: goto st396 case 96: - goto tr289 + goto tr303 case 108: goto st396 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st396: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof396 } st_case_396: switch lex.data[(lex.p)] { - case 65: - goto st397 + case 68: + goto tr581 case 96: - goto tr289 - case 97: - goto st397 + goto tr303 + case 100: + goto tr581 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 + tr581: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st397 st397: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof397 } st_case_397: +//line scanner/scanner.go:13595 switch lex.data[(lex.p)] { - case 83: + case 10: + goto st94 + case 13: + goto st95 + case 32: + goto st93 + case 70: goto st398 case 96: - goto tr289 - case 115: + goto tr582 + case 102: goto st398 } switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: + case lex.data[(lex.p)] < 14: switch { + case lex.data[(lex.p)] > 8: + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st93 + } + default: + goto tr582 + } + case lex.data[(lex.p)] > 47: + switch { + case lex.data[(lex.p)] < 91: + if 58 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 64 { + goto tr582 + } case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr582 } - case lex.data[(lex.p)] >= 91: - goto tr289 + default: + goto tr582 } default: - goto tr289 + goto tr582 } - goto tr201 + goto tr211 + tr134: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st93 + st93: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof93 + } + st_case_93: +//line scanner/scanner.go:13646 + switch lex.data[(lex.p)] { + case 10: + goto st94 + case 13: + goto st95 + case 32: + goto st93 + case 70: + goto st96 + case 102: + goto st96 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st93 + } + goto tr129 + tr135: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st94 + st94: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof94 + } + st_case_94: +//line scanner/scanner.go:13672 + switch lex.data[(lex.p)] { + case 10: + goto tr135 + case 13: + goto tr136 + case 32: + goto tr134 + case 70: + goto tr137 + case 102: + goto tr137 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr134 + } + goto tr129 + tr136: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st95 + st95: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof95 + } + st_case_95: +//line scanner/scanner.go:13698 + if lex.data[(lex.p)] == 10 { + goto st94 + } + goto tr129 + tr137: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st96 + st96: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof96 + } + st_case_96: +//line scanner/scanner.go:13712 + switch lex.data[(lex.p)] { + case 82: + goto st97 + case 114: + goto st97 + } + goto tr129 + st97: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof97 + } + st_case_97: + switch lex.data[(lex.p)] { + case 79: + goto st98 + case 111: + goto st98 + } + goto tr129 + st98: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof98 + } + st_case_98: + switch lex.data[(lex.p)] { + case 77: + goto tr140 + case 109: + goto tr140 + } + goto tr129 st398: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof398 } st_case_398: switch lex.data[(lex.p)] { - case 83: + case 82: goto st399 case 96: - goto tr289 - case 115: + goto tr303 + case 114: goto st399 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st399: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof399 } st_case_399: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 79: + goto st400 + case 96: + goto tr303 + case 111: goto st400 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st400: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof400 } st_case_400: - if lex.data[(lex.p)] == 95 { - goto tr587 + switch lex.data[(lex.p)] { + case 77: + goto tr586 + case 96: + goto tr303 + case 109: + goto tr586 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st401: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof401 } st_case_401: - switch lex.data[(lex.p)] { - case 73: - goto st402 - case 96: - goto tr289 - case 105: - goto st402 + if lex.data[(lex.p)] == 61 { + goto tr587 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr289 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 - } - case lex.data[(lex.p)] >= 91: - goto tr289 - } - default: - goto tr289 - } - goto tr201 + goto tr239 st402: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof402 } st_case_402: - switch lex.data[(lex.p)] { - case 82: - goto st403 - case 96: - goto tr289 - case 114: + if lex.data[(lex.p)] == 95 { goto st403 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st403: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof403 } st_case_403: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 67: goto st404 + case 68: + goto st410 + case 70: + goto st414 + case 72: + goto st427 + case 76: + goto st439 + case 77: + goto st444 + case 78: + goto st451 + case 84: + goto st461 + case 96: + goto tr303 + case 99: + goto st404 + case 100: + goto st410 + case 102: + goto st414 + case 104: + goto st427 + case 108: + goto st439 + case 109: + goto st444 + case 110: + goto st451 + case 116: + goto st461 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st404: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof404 } st_case_404: - if lex.data[(lex.p)] == 95 { - goto tr591 + switch lex.data[(lex.p)] { + case 76: + goto st405 + case 96: + goto tr303 + case 108: + goto st405 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st405: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof405 } st_case_405: switch lex.data[(lex.p)] { - case 73: + case 65: goto st406 - case 85: - goto st410 case 96: - goto tr289 - case 105: + goto tr303 + case 97: goto st406 - case 117: - goto st410 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st406: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof406 } st_case_406: switch lex.data[(lex.p)] { - case 76: + case 83: goto st407 case 96: - goto tr289 - case 108: + goto tr303 + case 115: goto st407 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st407: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof407 } st_case_407: switch lex.data[(lex.p)] { - case 69: + case 83: goto st408 case 96: - goto tr289 - case 101: + goto tr303 + case 115: goto st408 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st408: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof408 @@ -15139,435 +15202,434 @@ func (lex *Lexer) Lex(lval Lval) int { switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st409: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof409 } st_case_409: if lex.data[(lex.p)] == 95 { - goto tr597 + goto tr602 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st410: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof410 } st_case_410: switch lex.data[(lex.p)] { - case 78: + case 73: goto st411 case 96: - goto tr289 - case 110: + goto tr303 + case 105: goto st411 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st411: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof411 } st_case_411: switch lex.data[(lex.p)] { - case 67: + case 82: goto st412 case 96: - goto tr289 - case 99: + goto tr303 + case 114: goto st412 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st412: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof412 } st_case_412: - switch lex.data[(lex.p)] { - case 84: - goto st413 - case 96: - goto tr289 - case 116: + if lex.data[(lex.p)] == 95 { goto st413 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st413: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof413 } st_case_413: - switch lex.data[(lex.p)] { - case 73: - goto st414 - case 96: - goto tr289 - case 105: - goto st414 + if lex.data[(lex.p)] == 95 { + goto tr606 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st414: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof414 } st_case_414: switch lex.data[(lex.p)] { - case 79: + case 73: goto st415 + case 85: + goto st419 case 96: - goto tr289 - case 111: + goto tr303 + case 105: goto st415 + case 117: + goto st419 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st415: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof415 } st_case_415: switch lex.data[(lex.p)] { - case 78: + case 76: goto st416 case 96: - goto tr289 - case 110: + goto tr303 + case 108: goto st416 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st416: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof416 } st_case_416: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 69: + goto st417 + case 96: + goto tr303 + case 101: goto st417 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st417: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof417 } st_case_417: if lex.data[(lex.p)] == 95 { - goto tr605 + goto st418 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st418: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof418 } st_case_418: - switch lex.data[(lex.p)] { - case 65: - goto st419 - case 96: - goto tr289 - case 97: - goto st419 + if lex.data[(lex.p)] == 95 { + goto tr612 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st419: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof419 } st_case_419: switch lex.data[(lex.p)] { - case 76: + case 78: goto st420 case 96: - goto tr289 - case 108: + goto tr303 + case 110: goto st420 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st420: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof420 } st_case_420: switch lex.data[(lex.p)] { - case 84: + case 67: goto st421 case 96: - goto tr289 - case 116: + goto tr303 + case 99: goto st421 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st421: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof421 } st_case_421: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 84: + goto st422 + case 96: + goto tr303 + case 116: goto st422 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st422: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof422 } st_case_422: switch lex.data[(lex.p)] { - case 67: + case 73: goto st423 case 96: - goto tr289 - case 99: + goto tr303 + case 105: goto st423 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st423: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof423 @@ -15577,628 +15639,623 @@ func (lex *Lexer) Lex(lval Lval) int { case 79: goto st424 case 96: - goto tr289 + goto tr303 case 111: goto st424 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st424: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof424 } st_case_424: switch lex.data[(lex.p)] { - case 77: + case 78: goto st425 case 96: - goto tr289 - case 109: + goto tr303 + case 110: goto st425 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st425: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof425 } st_case_425: - switch lex.data[(lex.p)] { - case 80: - goto st426 - case 96: - goto tr289 - case 112: + if lex.data[(lex.p)] == 95 { goto st426 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st426: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof426 } st_case_426: - switch lex.data[(lex.p)] { - case 73: - goto st427 - case 96: - goto tr289 - case 105: - goto st427 + if lex.data[(lex.p)] == 95 { + goto tr620 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st427: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof427 } st_case_427: switch lex.data[(lex.p)] { - case 76: + case 65: goto st428 case 96: - goto tr289 - case 108: + goto tr303 + case 97: goto st428 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st428: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof428 } st_case_428: switch lex.data[(lex.p)] { - case 69: + case 76: goto st429 case 96: - goto tr289 - case 101: + goto tr303 + case 108: goto st429 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st429: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof429 } st_case_429: switch lex.data[(lex.p)] { - case 82: - goto tr617 + case 84: + goto st430 case 96: - goto tr289 - case 114: - goto tr617 + goto tr303 + case 116: + goto st430 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st430: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof430 } st_case_430: - switch lex.data[(lex.p)] { - case 73: - goto st431 - case 96: - goto tr289 - case 105: + if lex.data[(lex.p)] == 95 { goto st431 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st431: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof431 } st_case_431: switch lex.data[(lex.p)] { - case 78: + case 67: goto st432 case 96: - goto tr289 - case 110: + goto tr303 + case 99: goto st432 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st432: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof432 } st_case_432: switch lex.data[(lex.p)] { - case 69: + case 79: goto st433 case 96: - goto tr289 - case 101: + goto tr303 + case 111: goto st433 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st433: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof433 } st_case_433: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 77: + goto st434 + case 96: + goto tr303 + case 109: goto st434 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st434: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof434 } st_case_434: - if lex.data[(lex.p)] == 95 { - goto tr622 + switch lex.data[(lex.p)] { + case 80: + goto st435 + case 96: + goto tr303 + case 112: + goto st435 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st435: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof435 } st_case_435: switch lex.data[(lex.p)] { - case 69: + case 73: goto st436 case 96: - goto tr289 - case 101: + goto tr303 + case 105: goto st436 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st436: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof436 } st_case_436: switch lex.data[(lex.p)] { - case 84: + case 76: goto st437 case 96: - goto tr289 - case 116: + goto tr303 + case 108: goto st437 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st437: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof437 } st_case_437: switch lex.data[(lex.p)] { - case 72: + case 69: goto st438 case 96: - goto tr289 - case 104: + goto tr303 + case 101: goto st438 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st438: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof438 } st_case_438: switch lex.data[(lex.p)] { - case 79: - goto st439 + case 82: + goto tr632 case 96: - goto tr289 - case 111: - goto st439 + goto tr303 + case 114: + goto tr632 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st439: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof439 } st_case_439: switch lex.data[(lex.p)] { - case 68: + case 73: goto st440 case 96: - goto tr289 - case 100: + goto tr303 + case 105: goto st440 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st440: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof440 } st_case_440: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 78: + goto st441 + case 96: + goto tr303 + case 110: goto st441 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st441: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof441 } st_case_441: - if lex.data[(lex.p)] == 95 { - goto tr629 + switch lex.data[(lex.p)] { + case 69: + goto st442 + case 96: + goto tr303 + case 101: + goto st442 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st442: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof442 } st_case_442: - switch lex.data[(lex.p)] { - case 65: - goto st443 - case 96: - goto tr289 - case 97: + if lex.data[(lex.p)] == 95 { goto st443 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st443: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof443 } st_case_443: - switch lex.data[(lex.p)] { - case 77: - goto st444 - case 96: - goto tr289 - case 109: - goto st444 + if lex.data[(lex.p)] == 95 { + goto tr637 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st444: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof444 @@ -16208,914 +16265,735 @@ func (lex *Lexer) Lex(lval Lval) int { case 69: goto st445 case 96: - goto tr289 + goto tr303 case 101: goto st445 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st445: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof445 } st_case_445: switch lex.data[(lex.p)] { - case 83: + case 84: goto st446 case 96: - goto tr289 - case 115: + goto tr303 + case 116: goto st446 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st446: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof446 } st_case_446: switch lex.data[(lex.p)] { - case 80: + case 72: goto st447 case 96: - goto tr289 - case 112: + goto tr303 + case 104: goto st447 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st447: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof447 } st_case_447: switch lex.data[(lex.p)] { - case 65: + case 79: goto st448 case 96: - goto tr289 - case 97: + goto tr303 + case 111: goto st448 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st448: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof448 } st_case_448: switch lex.data[(lex.p)] { - case 67: + case 68: goto st449 case 96: - goto tr289 - case 99: + goto tr303 + case 100: goto st449 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st449: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof449 } st_case_449: - switch lex.data[(lex.p)] { - case 69: - goto st450 - case 96: - goto tr289 - case 101: + if lex.data[(lex.p)] == 95 { goto st450 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st450: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof450 } st_case_450: if lex.data[(lex.p)] == 95 { - goto st451 + goto tr644 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st451: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof451 } st_case_451: - if lex.data[(lex.p)] == 95 { - goto tr639 + switch lex.data[(lex.p)] { + case 65: + goto st452 + case 96: + goto tr303 + case 97: + goto st452 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st452: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof452 } st_case_452: switch lex.data[(lex.p)] { - case 82: + case 77: goto st453 case 96: - goto tr289 - case 114: + goto tr303 + case 109: goto st453 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st453: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof453 } st_case_453: switch lex.data[(lex.p)] { - case 65: + case 69: goto st454 case 96: - goto tr289 - case 97: + goto tr303 + case 101: goto st454 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st454: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof454 } st_case_454: switch lex.data[(lex.p)] { - case 73: + case 83: goto st455 case 96: - goto tr289 - case 105: + goto tr303 + case 115: goto st455 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st455: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof455 } st_case_455: switch lex.data[(lex.p)] { - case 84: + case 80: goto st456 case 96: - goto tr289 - case 116: + goto tr303 + case 112: goto st456 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st456: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof456 } st_case_456: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 65: + goto st457 + case 96: + goto tr303 + case 97: goto st457 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st457: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof457 } st_case_457: - if lex.data[(lex.p)] == 95 { - goto tr645 + switch lex.data[(lex.p)] { + case 67: + goto st458 + case 96: + goto tr303 + case 99: + goto st458 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr289 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr289 + goto tr303 } default: - goto tr289 + goto tr303 } - goto tr201 + goto tr211 st458: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof458 } st_case_458: switch lex.data[(lex.p)] { - case 61: - goto tr646 - case 124: - goto tr647 - } - goto tr229 - tr135: -//line scanner/scanner.rl:374 - (lex.p) = (lex.te) - 1 - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st459 - tr648: -//line scanner/scanner.rl:377 - lex.te = (lex.p) + 1 - { - lex.ungetCnt(1) - { - goto st114 - } - } - goto st459 - tr653: -//line scanner/scanner.rl:374 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st459 - tr655: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:374 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st459 - tr659: -//line scanner/scanner.rl:377 - lex.te = (lex.p) - (lex.p)-- - { - lex.ungetCnt(1) - { - goto st114 - } - } - goto st459 - tr660: -//line scanner/scanner.rl:375 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = T_OBJECT_OPERATOR - { - (lex.p)++ - lex.cs = 459 - goto _out - } - } - goto st459 - tr661: - lex.cs = 459 -//line scanner/scanner.rl:376 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = T_STRING - lex.cs = 114 - { - (lex.p)++ - goto _out - } - } - goto _again - st459: -//line NONE:1 - lex.ts = 0 - - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof459 - } - st_case_459: -//line NONE:1 - lex.ts = (lex.p) - -//line scanner/scanner.go:15587 - switch lex.data[(lex.p)] { - case 10: - goto tr136 - case 13: - goto st462 - case 32: - goto tr649 - case 45: - goto st463 + case 69: + goto st459 case 96: - goto tr648 + goto tr303 + case 101: + goto st459 } switch { - case lex.data[(lex.p)] < 14: - switch { - case lex.data[(lex.p)] > 8: - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr649 - } - default: - goto tr648 + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr648 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr648 + goto tr303 } default: - goto tr648 + goto tr303 } - goto st464 - tr649: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st460 - tr656: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st460 + goto tr211 + st459: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof459 + } + st_case_459: + if lex.data[(lex.p)] == 95 { + goto st460 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 96: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr303 + } + case lex.data[(lex.p)] >= 91: + goto tr303 + } + default: + goto tr303 + } + goto tr211 st460: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof460 } st_case_460: -//line scanner/scanner.go:15640 - switch lex.data[(lex.p)] { - case 10: - goto tr136 - case 13: - goto st96 - case 32: - goto tr649 + if lex.data[(lex.p)] == 95 { + goto tr654 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr649 + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 96: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr303 + } + case lex.data[(lex.p)] >= 91: + goto tr303 + } + default: + goto tr303 } - goto tr653 - tr136: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st461 - tr657: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st461 + goto tr211 st461: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof461 } st_case_461: -//line scanner/scanner.go:15670 switch lex.data[(lex.p)] { - case 10: - goto tr657 - case 13: - goto tr658 - case 32: - goto tr656 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr656 - } - goto tr655 - tr658: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st96 - st96: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof96 - } - st_case_96: -//line scanner/scanner.go:15692 - if lex.data[(lex.p)] == 10 { - goto tr136 - } - goto tr135 - st462: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof462 - } - st_case_462: - if lex.data[(lex.p)] == 10 { - goto tr136 - } - goto tr659 - st463: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof463 - } - st_case_463: - if lex.data[(lex.p)] == 62 { - goto tr660 - } - goto tr659 - st464: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof464 - } - st_case_464: - if lex.data[(lex.p)] == 96 { - goto tr661 + case 82: + goto st462 + case 96: + goto tr303 + case 114: + goto st462 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr661 + goto tr303 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr661 + goto tr303 } case lex.data[(lex.p)] >= 91: - goto tr661 + goto tr303 } default: - goto tr661 + goto tr303 } - goto st464 - tr664: - lex.cs = 465 -//line NONE:1 - switch lex.act { - case 0: - { - { - goto st0 + goto tr211 + st462: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof462 + } + st_case_462: + switch lex.data[(lex.p)] { + case 65: + goto st463 + case 96: + goto tr303 + case 97: + goto st463 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr303 } + case lex.data[(lex.p)] >= 91: + goto tr303 } - case 142: - { - (lex.p) = (lex.te) - 1 - - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE - lex.cs = 486 - { - (lex.p)++ - goto _out + default: + goto tr303 + } + goto tr211 + st463: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof463 + } + st_case_463: + switch lex.data[(lex.p)] { + case 73: + goto st464 + case 96: + goto tr303 + case 105: + goto st464 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr303 } + case lex.data[(lex.p)] >= 91: + goto tr303 } + default: + goto tr303 } - - goto _again - tr665: - lex.cs = 465 -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:381 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE - lex.cs = 486 - { - (lex.p)++ - goto _out + goto tr211 + st464: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof464 + } + st_case_464: + switch lex.data[(lex.p)] { + case 84: + goto st465 + case 96: + goto tr303 + case 116: + goto st465 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr303 + } + case lex.data[(lex.p)] >= 91: + goto tr303 + } + default: + goto tr303 } - goto _again + goto tr211 st465: -//line NONE:1 - lex.ts = 0 - -//line NONE:1 - lex.act = 0 - if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof465 } st_case_465: -//line NONE:1 - lex.ts = (lex.p) - -//line scanner/scanner.go:15786 - _widec = int16(lex.data[(lex.p)]) + if lex.data[(lex.p)] == 95 { + goto st466 + } switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 } - case lex.data[(lex.p)] > 12: + case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 + case lex.data[(lex.p)] > 96: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr303 } + case lex.data[(lex.p)] >= 91: + goto tr303 } default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } + goto tr303 } - if _widec == 1034 { - goto st467 - } - if 1024 <= _widec && _widec <= 1279 { - goto tr662 - } - goto st0 - st_case_0: - st0: - lex.cs = 0 - goto _out - tr662: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:381 - lex.act = 142 - goto st466 - tr666: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:381 - lex.act = 142 - goto st466 + goto tr211 st466: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof466 } st_case_466: -//line scanner/scanner.go:15857 - _widec = int16(lex.data[(lex.p)]) + if lex.data[(lex.p)] == 95 { + goto tr660 + } switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr303 } - case lex.data[(lex.p)] > 12: + case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 + case lex.data[(lex.p)] > 96: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr303 } + case lex.data[(lex.p)] >= 91: + goto tr303 } default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } + goto tr303 } - if _widec == 1034 { - goto st467 - } - if 1024 <= _widec && _widec <= 1279 { - goto tr662 - } - goto tr664 - tr667: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st467 + goto tr211 st467: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof467 } st_case_467: -//line scanner/scanner.go:15912 - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } + switch lex.data[(lex.p)] { + case 61: + goto tr661 + case 124: + goto tr662 } - if _widec == 1034 { - goto tr667 - } - if 1024 <= _widec && _widec <= 1279 { - goto tr666 - } - goto tr665 - tr137: + goto tr239 + tr141: //line scanner/scanner.rl:390 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st468 + tr663: +//line scanner/scanner.rl:393 lex.te = (lex.p) + 1 { lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN - lex.call(468, 114) - goto _out + { + goto st121 + } + } + goto st468 + tr668: +//line scanner/scanner.rl:390 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st468 + tr670: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:390 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) } goto st468 tr674: -//line scanner/scanner.rl:392 +//line scanner/scanner.rl:393 lex.te = (lex.p) (lex.p)-- { lex.ungetCnt(1) { - lex.growCallStack() - { - lex.stack[lex.top] = 468 - lex.top++ - goto st488 - } + goto st121 } } goto st468 @@ -17124,82 +17002,23 @@ func (lex *Lexer) Lex(lval Lval) int { lex.te = (lex.p) + 1 { lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES - lex.call(468, 503) - goto _out + tok = T_OBJECT_OPERATOR + { + (lex.p)++ + lex.cs = 468 + goto _out + } } goto st468 tr676: lex.cs = 468 -//line NONE:1 - switch lex.act { - case 143: - { - (lex.p) = (lex.te) - 1 - lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN - lex.call(468, 114) - goto _out - } - case 144: - { - (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES - lex.call(468, 503) - goto _out - } - case 146: - { - (lex.p) = (lex.te) - 1 - - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE - - if lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { - lex.cs = 486 - } - { - (lex.p)++ - goto _out - } - } - } - - goto _again - tr677: - lex.cs = 468 -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:393 +//line scanner/scanner.rl:392 lex.te = (lex.p) (lex.p)-- { lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE - - if lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { - lex.cs = 486 - } - { - (lex.p)++ - goto _out - } - } - goto _again - tr681: - lex.cs = 468 -//line scanner/scanner.rl:393 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE - - if lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { - lex.cs = 486 - } + tok = T_STRING + lex.cs = 121 { (lex.p)++ goto _out @@ -17217,268 +17036,132 @@ func (lex *Lexer) Lex(lval Lval) int { //line NONE:1 lex.ts = (lex.p) -//line scanner/scanner.go:16041 - _widec = int16(lex.data[(lex.p)]) +//line scanner/scanner.go:15868 + switch lex.data[(lex.p)] { + case 10: + goto tr142 + case 13: + goto st471 + case 32: + goto tr664 + case 45: + goto st472 + case 96: + goto tr663 + } switch { - case lex.data[(lex.p)] < 11: + case lex.data[(lex.p)] < 14: switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } + case lex.data[(lex.p)] > 8: + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr664 } default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } + goto tr663 } - case lex.data[(lex.p)] > 12: + case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr663 } + case lex.data[(lex.p)] >= 91: + goto tr663 } default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } + goto tr663 } - switch _widec { - case 1316: - goto st469 - case 1403: - goto st97 - case 1546: - goto st471 - case 1572: - goto st472 - case 1659: - goto st473 - } - if 1536 <= _widec && _widec <= 1791 { - goto tr670 - } - goto st0 + goto st473 + tr664: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st469 + tr671: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st469 st469: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof469 } st_case_469: - if lex.data[(lex.p)] == 123 { - goto tr675 +//line scanner/scanner.go:15921 + switch lex.data[(lex.p)] { + case 10: + goto tr142 + case 13: + goto st99 + case 32: + goto tr664 } - goto tr674 - st97: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof97 + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr664 } - st_case_97: - if lex.data[(lex.p)] == 36 { - goto tr137 - } - goto st0 - tr670: + goto tr668 + tr142: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:393 - lex.act = 146 goto st470 - tr678: + tr672: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:64 +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:393 - lex.act = 146 - goto st470 - tr680: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:391 - lex.act = 144 - goto st470 - tr682: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:390 - lex.act = 143 goto st470 st470: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof470 } st_case_470: -//line scanner/scanner.go:16149 - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } +//line scanner/scanner.go:15951 + switch lex.data[(lex.p)] { + case 10: + goto tr672 + case 13: + goto tr673 + case 32: + goto tr671 } - if _widec == 1546 { - goto st471 + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr671 } - if 1536 <= _widec && _widec <= 1791 { - goto tr670 - } - goto tr676 - tr679: -//line scanner/scanner.rl:64 + goto tr670 + tr673: +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) - goto st471 + goto st99 + st99: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof99 + } + st_case_99: +//line scanner/scanner.go:15973 + if lex.data[(lex.p)] == 10 { + goto tr142 + } + goto tr141 st471: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof471 } st_case_471: -//line scanner/scanner.go:16204 - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } + if lex.data[(lex.p)] == 10 { + goto tr142 } - if _widec == 1546 { - goto tr679 - } - if 1536 <= _widec && _widec <= 1791 { - goto tr678 - } - goto tr677 + goto tr674 st472: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof472 } st_case_472: - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - switch _widec { - case 1403: + if lex.data[(lex.p)] == 62 { goto tr675 - case 1546: - goto st471 - case 1659: - goto tr680 - } - if 1536 <= _widec && _widec <= 1791 { - goto tr670 } goto tr674 st473: @@ -17486,145 +17169,44 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof473 } st_case_473: - _widec = int16(lex.data[(lex.p)]) + if lex.data[(lex.p)] == 96 { + goto tr676 + } switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr676 } - case lex.data[(lex.p)] > 12: + case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr676 } + case lex.data[(lex.p)] >= 91: + goto tr676 } default: - _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { - _widec += 256 - } + goto tr676 } - switch _widec { - case 1316: - goto tr137 - case 1546: - goto st471 - case 1572: - goto tr682 - } - if 1536 <= _widec && _widec <= 1791 { - goto tr670 - } - goto tr681 - tr139: -//line scanner/scanner.rl:405 - lex.te = (lex.p) + 1 - { - lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN - lex.call(474, 114) - goto _out - } - goto st474 - tr684: - lex.cs = 474 -//line scanner/scanner.rl:408 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = TokenID(int('`')) - lex.cs = 114 - { - (lex.p)++ - goto _out - } - } - goto _again - tr691: -//line scanner/scanner.rl:407 - lex.te = (lex.p) - (lex.p)-- - { - lex.ungetCnt(1) - { - lex.growCallStack() - { - lex.stack[lex.top] = 474 - lex.top++ - goto st488 - } - } - } - goto st474 - tr692: -//line scanner/scanner.rl:406 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES - lex.call(474, 503) - goto _out - } - goto st474 - tr693: + goto st473 + tr679: lex.cs = 474 //line NONE:1 switch lex.act { - case 147: + case 0: { - (lex.p) = (lex.te) - 1 - lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN - lex.call(474, 114) - goto _out - } - case 148: - { - (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES - lex.call(474, 503) - goto _out - } - case 150: - { - (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = TokenID(int('`')) - lex.cs = 114 { - (lex.p)++ - goto _out + goto st0 } } - case 151: + case 146: { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) tok = T_ENCAPSED_AND_WHITESPACE + lex.cs = 495 { (lex.p)++ goto _out @@ -17633,40 +17215,30 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again - tr694: -//line scanner/scanner.rl:64 + tr680: + lex.cs = 474 +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:409 +//line scanner/scanner.rl:397 lex.te = (lex.p) (lex.p)-- { lex.setTokenPosition(token) tok = T_ENCAPSED_AND_WHITESPACE + lex.cs = 495 { (lex.p)++ - lex.cs = 474 goto _out } } - goto st474 - tr698: -//line scanner/scanner.rl:409 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE - { - (lex.p)++ - lex.cs = 474 - goto _out - } - } - goto st474 + goto _again st474: //line NONE:1 lex.ts = 0 +//line NONE:1 + lex.act = 0 + if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof474 } @@ -17674,21 +17246,21 @@ func (lex *Lexer) Lex(lval Lval) int { //line NONE:1 lex.ts = (lex.p) -//line scanner/scanner.go:16438 +//line scanner/scanner.go:16067 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: switch { case lex.data[(lex.p)] > 9: if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } @@ -17696,118 +17268,125 @@ func (lex *Lexer) Lex(lval Lval) int { switch { case lex.data[(lex.p)] > 13: if 14 <= lex.data[(lex.p)] { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } case lex.data[(lex.p)] >= 13: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } - switch _widec { - case 1828: - goto st475 - case 1888: - goto tr684 - case 1915: - goto st98 - case 2058: - goto st477 - case 2084: - goto st478 - case 2144: - goto tr689 - case 2171: - goto st479 + if _widec == 1034 { + goto st476 } - if 2048 <= _widec && _widec <= 2303 { - goto tr686 + if 1024 <= _widec && _widec <= 1279 { + goto tr677 } goto st0 + st_case_0: + st0: + lex.cs = 0 + goto _out + tr677: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:397 + lex.act = 146 + goto st475 + tr681: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:397 + lex.act = 146 + goto st475 st475: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof475 } st_case_475: - if lex.data[(lex.p)] == 123 { - goto tr692 +//line scanner/scanner.go:16138 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + default: + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + default: + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } } - goto tr691 - st98: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof98 + if _widec == 1034 { + goto st476 } - st_case_98: - if lex.data[(lex.p)] == 36 { - goto tr139 + if 1024 <= _widec && _widec <= 1279 { + goto tr677 } - goto st0 - tr686: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:409 - lex.act = 151 - goto st476 - tr689: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:408 - lex.act = 150 - goto st476 - tr695: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 + goto tr679 + tr682: +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:409 - lex.act = 151 - goto st476 - tr697: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:406 - lex.act = 148 - goto st476 - tr699: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:405 - lex.act = 147 goto st476 st476: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof476 } st_case_476: -//line scanner/scanner.go:16557 +//line scanner/scanner.go:16193 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: switch { case lex.data[(lex.p)] > 9: if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } @@ -17815,222 +17394,43 @@ func (lex *Lexer) Lex(lval Lval) int { switch { case lex.data[(lex.p)] > 13: if 14 <= lex.data[(lex.p)] { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } case lex.data[(lex.p)] >= 13: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { _widec += 256 } } - if _widec == 2058 { - goto st477 + if _widec == 1034 { + goto tr682 } - if 2048 <= _widec && _widec <= 2303 { - goto tr686 + if 1024 <= _widec && _widec <= 1279 { + goto tr681 } - goto tr693 - tr696: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st477 - st477: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof477 - } - st_case_477: -//line scanner/scanner.go:16612 - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - if _widec == 2058 { - goto tr696 - } - if 2048 <= _widec && _widec <= 2303 { - goto tr695 - } - goto tr694 - st478: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof478 - } - st_case_478: - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - switch _widec { - case 1915: - goto tr692 - case 2058: - goto st477 - case 2171: - goto tr697 - } - if 2048 <= _widec && _widec <= 2303 { - goto tr686 - } - goto tr691 - st479: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof479 - } - st_case_479: - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - default: - _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotStringEnd('`') && lex.isNotStringVar() { - _widec += 256 - } - } - switch _widec { - case 1828: - goto tr139 - case 2058: - goto st477 - case 2084: - goto tr699 - } - if 2048 <= _widec && _widec <= 2303 { - goto tr686 - } - goto tr698 - tr140: -//line scanner/scanner.rl:417 + goto tr680 + tr143: +//line scanner/scanner.rl:406 lex.te = (lex.p) + 1 { lex.ungetCnt(1) lex.setTokenPosition(token) tok = T_CURLY_OPEN - lex.call(480, 114) + lex.call(477, 121) goto _out } - goto st480 - tr700: - lex.cs = 480 -//line scanner/scanner.rl:420 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = TokenID(int('"')) - lex.cs = 114 - { - (lex.p)++ - goto _out - } - } - goto _again - tr708: -//line scanner/scanner.rl:419 + goto st477 + tr689: +//line scanner/scanner.rl:408 lex.te = (lex.p) (lex.p)-- { @@ -18038,56 +17438,514 @@ func (lex *Lexer) Lex(lval Lval) int { { lex.growCallStack() { - lex.stack[lex.top] = 480 + lex.stack[lex.top] = 477 lex.top++ - goto st488 + goto st497 } } } - goto st480 - tr709: -//line scanner/scanner.rl:418 + goto st477 + tr690: +//line scanner/scanner.rl:407 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = T_DOLLAR_OPEN_CURLY_BRACES - lex.call(480, 503) + lex.call(477, 512) goto _out } - goto st480 - tr710: - lex.cs = 480 + goto st477 + tr691: + lex.cs = 477 //line NONE:1 switch lex.act { - case 152: + case 147: { (lex.p) = (lex.te) - 1 lex.ungetCnt(1) lex.setTokenPosition(token) tok = T_CURLY_OPEN - lex.call(480, 114) + lex.call(477, 121) goto _out } - case 153: + case 148: { (lex.p) = (lex.te) - 1 lex.setTokenPosition(token) tok = T_DOLLAR_OPEN_CURLY_BRACES - lex.call(480, 503) + lex.call(477, 512) goto _out } - case 155: + case 150: { (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) - tok = TokenID(int('"')) - lex.cs = 114 + tok = T_ENCAPSED_AND_WHITESPACE + + if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { + lex.cs = 495 + } { (lex.p)++ goto _out } } - case 156: + } + + goto _again + tr692: + lex.cs = 477 +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:409 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + + if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { + lex.cs = 495 + } + { + (lex.p)++ + goto _out + } + } + goto _again + tr696: + lex.cs = 477 +//line scanner/scanner.rl:409 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + + if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { + lex.cs = 495 + } + { + (lex.p)++ + goto _out + } + } + goto _again + st477: +//line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof477 + } + st_case_477: +//line NONE:1 + lex.ts = (lex.p) + +//line scanner/scanner.go:16322 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + switch _widec { + case 1316: + goto st478 + case 1403: + goto st100 + case 1546: + goto st480 + case 1572: + goto st481 + case 1659: + goto st482 + } + if 1536 <= _widec && _widec <= 1791 { + goto tr685 + } + goto st0 + st478: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof478 + } + st_case_478: + if lex.data[(lex.p)] == 123 { + goto tr690 + } + goto tr689 + st100: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof100 + } + st_case_100: + if lex.data[(lex.p)] == 36 { + goto tr143 + } + goto st0 + tr685: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:409 + lex.act = 150 + goto st479 + tr693: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:409 + lex.act = 150 + goto st479 + tr695: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:407 + lex.act = 148 + goto st479 + tr697: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:406 + lex.act = 147 + goto st479 + st479: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof479 + } + st_case_479: +//line scanner/scanner.go:16430 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + if _widec == 1546 { + goto st480 + } + if 1536 <= _widec && _widec <= 1791 { + goto tr685 + } + goto tr691 + tr694: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st480 + st480: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof480 + } + st_case_480: +//line scanner/scanner.go:16485 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + if _widec == 1546 { + goto tr694 + } + if 1536 <= _widec && _widec <= 1791 { + goto tr693 + } + goto tr692 + st481: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof481 + } + st_case_481: + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + switch _widec { + case 1403: + goto tr690 + case 1546: + goto st480 + case 1659: + goto tr695 + } + if 1536 <= _widec && _widec <= 1791 { + goto tr685 + } + goto tr689 + st482: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof482 + } + st_case_482: + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1280 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() { + _widec += 256 + } + } + switch _widec { + case 1316: + goto tr143 + case 1546: + goto st480 + case 1572: + goto tr697 + } + if 1536 <= _widec && _widec <= 1791 { + goto tr685 + } + goto tr696 + tr145: +//line scanner/scanner.rl:421 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.setTokenPosition(token) + tok = T_CURLY_OPEN + lex.call(483, 121) + goto _out + } + goto st483 + tr699: + lex.cs = 483 +//line scanner/scanner.rl:424 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int('`')) + lex.cs = 121 + { + (lex.p)++ + goto _out + } + } + goto _again + tr706: +//line scanner/scanner.rl:423 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + { + lex.growCallStack() + { + lex.stack[lex.top] = 483 + lex.top++ + goto st497 + } + } + } + goto st483 + tr707: +//line scanner/scanner.rl:422 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.call(483, 512) + goto _out + } + goto st483 + tr708: + lex.cs = 483 +//line NONE:1 + switch lex.act { + case 151: + { + (lex.p) = (lex.te) - 1 + lex.ungetCnt(1) + lex.setTokenPosition(token) + tok = T_CURLY_OPEN + lex.call(483, 121) + goto _out + } + case 152: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.call(483, 512) + goto _out + } + case 154: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = TokenID(int('`')) + lex.cs = 121 + { + (lex.p)++ + goto _out + } + } + case 155: { (lex.p) = (lex.te) - 1 @@ -18101,10 +17959,10 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again - tr711: -//line scanner/scanner.rl:64 + tr709: +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:421 +//line scanner/scanner.rl:425 lex.te = (lex.p) (lex.p)-- { @@ -18112,13 +17970,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_ENCAPSED_AND_WHITESPACE { (lex.p)++ - lex.cs = 480 + lex.cs = 483 goto _out } } - goto st480 - tr715: -//line scanner/scanner.rl:421 + goto st483 + tr713: +//line scanner/scanner.rl:425 lex.te = (lex.p) (lex.p)-- { @@ -18126,23 +17984,491 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_ENCAPSED_AND_WHITESPACE { (lex.p)++ - lex.cs = 480 + lex.cs = 483 goto _out } } - goto st480 - st480: + goto st483 + st483: //line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof480 + goto _test_eof483 } - st_case_480: + st_case_483: //line NONE:1 lex.ts = (lex.p) -//line scanner/scanner.go:16846 +//line scanner/scanner.go:16719 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + switch _widec { + case 1828: + goto st484 + case 1888: + goto tr699 + case 1915: + goto st101 + case 2058: + goto st486 + case 2084: + goto st487 + case 2144: + goto tr704 + case 2171: + goto st488 + } + if 2048 <= _widec && _widec <= 2303 { + goto tr701 + } + goto st0 + st484: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof484 + } + st_case_484: + if lex.data[(lex.p)] == 123 { + goto tr707 + } + goto tr706 + st101: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof101 + } + st_case_101: + if lex.data[(lex.p)] == 36 { + goto tr145 + } + goto st0 + tr701: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:425 + lex.act = 155 + goto st485 + tr704: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:424 + lex.act = 154 + goto st485 + tr710: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:425 + lex.act = 155 + goto st485 + tr712: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:422 + lex.act = 152 + goto st485 + tr714: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:421 + lex.act = 151 + goto st485 + st485: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof485 + } + st_case_485: +//line scanner/scanner.go:16838 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + if _widec == 2058 { + goto st486 + } + if 2048 <= _widec && _widec <= 2303 { + goto tr701 + } + goto tr708 + tr711: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st486 + st486: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof486 + } + st_case_486: +//line scanner/scanner.go:16893 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + if _widec == 2058 { + goto tr711 + } + if 2048 <= _widec && _widec <= 2303 { + goto tr710 + } + goto tr709 + st487: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof487 + } + st_case_487: + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + switch _widec { + case 1915: + goto tr707 + case 2058: + goto st486 + case 2171: + goto tr712 + } + if 2048 <= _widec && _widec <= 2303 { + goto tr701 + } + goto tr706 + st488: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof488 + } + st_case_488: + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 1792 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('`') && lex.isNotStringVar() { + _widec += 256 + } + } + switch _widec { + case 1828: + goto tr145 + case 2058: + goto st486 + case 2084: + goto tr714 + } + if 2048 <= _widec && _widec <= 2303 { + goto tr701 + } + goto tr713 + tr146: +//line scanner/scanner.rl:433 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.setTokenPosition(token) + tok = T_CURLY_OPEN + lex.call(489, 121) + goto _out + } + goto st489 + tr715: + lex.cs = 489 +//line scanner/scanner.rl:436 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int('"')) + lex.cs = 121 + { + (lex.p)++ + goto _out + } + } + goto _again + tr723: +//line scanner/scanner.rl:435 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + { + lex.growCallStack() + { + lex.stack[lex.top] = 489 + lex.top++ + goto st497 + } + } + } + goto st489 + tr724: +//line scanner/scanner.rl:434 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.call(489, 512) + goto _out + } + goto st489 + tr725: + lex.cs = 489 +//line NONE:1 + switch lex.act { + case 156: + { + (lex.p) = (lex.te) - 1 + lex.ungetCnt(1) + lex.setTokenPosition(token) + tok = T_CURLY_OPEN + lex.call(489, 121) + goto _out + } + case 157: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.call(489, 512) + goto _out + } + case 159: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = TokenID(int('"')) + lex.cs = 121 + { + (lex.p)++ + goto _out + } + } + case 160: + { + (lex.p) = (lex.te) - 1 + + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + { + (lex.p)++ + goto _out + } + } + } + + goto _again + tr726: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:437 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + { + (lex.p)++ + lex.cs = 489 + goto _out + } + } + goto st489 + tr730: +//line scanner/scanner.rl:437 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + { + (lex.p)++ + lex.cs = 489 + goto _out + } + } + goto st489 + st489: +//line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof489 + } + st_case_489: +//line NONE:1 + lex.ts = (lex.p) + +//line scanner/scanner.go:17127 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18183,85 +18509,85 @@ func (lex *Lexer) Lex(lval Lval) int { } switch _widec { case 2338: - goto tr700 + goto tr715 case 2340: - goto st481 + goto st490 case 2427: - goto st99 + goto st102 case 2570: - goto st483 + goto st492 case 2594: - goto tr705 + goto tr720 case 2596: - goto st484 + goto st493 case 2683: - goto st485 + goto st494 } if 2560 <= _widec && _widec <= 2815 { - goto tr703 + goto tr718 } goto st0 - st481: + st490: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof481 + goto _test_eof490 } - st_case_481: + st_case_490: if lex.data[(lex.p)] == 123 { - goto tr709 + goto tr724 } - goto tr708 - st99: + goto tr723 + st102: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof99 + goto _test_eof102 } - st_case_99: + st_case_102: if lex.data[(lex.p)] == 36 { - goto tr140 + goto tr146 } goto st0 - tr703: + tr718: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:421 - lex.act = 156 - goto st482 - tr705: +//line scanner/scanner.rl:437 + lex.act = 160 + goto st491 + tr720: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:420 - lex.act = 155 - goto st482 - tr712: +//line scanner/scanner.rl:436 + lex.act = 159 + goto st491 + tr727: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:64 +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:421 +//line scanner/scanner.rl:437 + lex.act = 160 + goto st491 + tr729: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:434 + lex.act = 157 + goto st491 + tr731: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:433 lex.act = 156 - goto st482 - tr714: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:418 - lex.act = 153 - goto st482 - tr716: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:417 - lex.act = 152 - goto st482 - st482: + goto st491 + st491: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof482 + goto _test_eof491 } - st_case_482: -//line scanner/scanner.go:16965 + st_case_491: +//line scanner/scanner.go:17246 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18301,22 +18627,22 @@ func (lex *Lexer) Lex(lval Lval) int { } } if _widec == 2570 { - goto st483 + goto st492 } if 2560 <= _widec && _widec <= 2815 { - goto tr703 + goto tr718 } - goto tr710 - tr713: -//line scanner/scanner.rl:64 + goto tr725 + tr728: +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) - goto st483 - st483: + goto st492 + st492: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof483 + goto _test_eof492 } - st_case_483: -//line scanner/scanner.go:17020 + st_case_492: +//line scanner/scanner.go:17301 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18356,17 +18682,17 @@ func (lex *Lexer) Lex(lval Lval) int { } } if _widec == 2570 { - goto tr713 + goto tr728 } if 2560 <= _widec && _widec <= 2815 { - goto tr712 + goto tr727 } - goto tr711 - st484: + goto tr726 + st493: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof484 + goto _test_eof493 } - st_case_484: + st_case_493: _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18407,21 +18733,21 @@ func (lex *Lexer) Lex(lval Lval) int { } switch _widec { case 2427: - goto tr709 + goto tr724 case 2570: - goto st483 + goto st492 case 2683: - goto tr714 + goto tr729 } if 2560 <= _widec && _widec <= 2815 { - goto tr703 + goto tr718 } - goto tr708 - st485: + goto tr723 + st494: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof485 + goto _test_eof494 } - st_case_485: + st_case_494: _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18462,43 +18788,43 @@ func (lex *Lexer) Lex(lval Lval) int { } switch _widec { case 2340: - goto tr140 + goto tr146 case 2570: - goto st483 + goto st492 case 2596: - goto tr716 + goto tr731 } if 2560 <= _widec && _widec <= 2815 { - goto tr703 + goto tr718 } - goto tr715 - tr718: - lex.cs = 486 -//line scanner/scanner.rl:429 + goto tr730 + tr733: + lex.cs = 495 +//line scanner/scanner.rl:445 lex.te = (lex.p) (lex.p)-- { lex.setTokenPosition(token) tok = T_END_HEREDOC - lex.cs = 114 + lex.cs = 121 { (lex.p)++ goto _out } } goto _again - st486: + st495: //line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof486 + goto _test_eof495 } - st_case_486: + st_case_495: //line NONE:1 lex.ts = (lex.p) -//line scanner/scanner.go:17199 +//line scanner/scanner.go:17480 if lex.data[(lex.p)] == 96 { goto st0 } @@ -18514,35 +18840,35 @@ func (lex *Lexer) Lex(lval Lval) int { default: goto st0 } - goto st487 - st487: + goto st496 + st496: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof487 + goto _test_eof496 } - st_case_487: + st_case_496: if lex.data[(lex.p)] == 96 { - goto tr718 + goto tr733 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr718 + goto tr733 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr718 + goto tr733 } case lex.data[(lex.p)] >= 91: - goto tr718 + goto tr733 } default: - goto tr718 + goto tr733 } - goto st487 - tr141: -//line scanner/scanner.rl:448 + goto st496 + tr147: +//line scanner/scanner.rl:464 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -18552,9 +18878,9 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again } } - goto st488 - tr142: -//line scanner/scanner.rl:445 + goto st497 + tr148: +//line scanner/scanner.rl:461 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18562,13 +18888,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_OBJECT_OPERATOR { (lex.p)++ - lex.cs = 488 + lex.cs = 497 goto _out } } - goto st488 - tr719: -//line scanner/scanner.rl:448 + goto st497 + tr734: +//line scanner/scanner.rl:464 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18578,19 +18904,19 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again } } - goto st488 - tr723: -//line scanner/scanner.rl:447 + goto st497 + tr738: +//line scanner/scanner.rl:463 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = TokenID(int('[')) - lex.call(488, 493) + lex.call(497, 502) goto _out } - goto st488 - tr724: -//line scanner/scanner.rl:448 + goto st497 + tr739: +//line scanner/scanner.rl:464 lex.te = (lex.p) (lex.p)-- { @@ -18601,271 +18927,9 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again } } - goto st488 - tr726: -//line scanner/scanner.rl:444 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = T_VARIABLE - { - (lex.p)++ - lex.cs = 488 - goto _out - } - } - goto st488 - tr728: -//line scanner/scanner.rl:446 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = T_STRING - { - (lex.p)++ - lex.cs = 488 - goto _out - } - } - goto st488 - st488: -//line NONE:1 - lex.ts = 0 - - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof488 - } - st_case_488: -//line NONE:1 - lex.ts = (lex.p) - -//line scanner/scanner.go:17291 - switch lex.data[(lex.p)] { - case 36: - goto st489 - case 45: - goto tr721 - case 91: - goto tr723 - case 96: - goto tr719 - } - switch { - case lex.data[(lex.p)] < 92: - if lex.data[(lex.p)] <= 64 { - goto tr719 - } - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr719 - } - default: - goto tr719 - } - goto st492 - st489: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof489 - } - st_case_489: - if lex.data[(lex.p)] == 96 { - goto tr724 - } - switch { - case lex.data[(lex.p)] < 91: - if lex.data[(lex.p)] <= 64 { - goto tr724 - } - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr724 - } - default: - goto tr724 - } - goto st490 - st490: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof490 - } - st_case_490: - if lex.data[(lex.p)] == 96 { - goto tr726 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr726 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr726 - } - case lex.data[(lex.p)] >= 91: - goto tr726 - } - default: - goto tr726 - } - goto st490 - tr721: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st491 - st491: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof491 - } - st_case_491: -//line scanner/scanner.go:17372 - if lex.data[(lex.p)] == 62 { - goto st100 - } - goto tr724 - st100: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof100 - } - st_case_100: - if lex.data[(lex.p)] == 96 { - goto tr141 - } - switch { - case lex.data[(lex.p)] < 91: - if lex.data[(lex.p)] <= 64 { - goto tr141 - } - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr141 - } - default: - goto tr141 - } - goto tr142 - st492: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof492 - } - st_case_492: - if lex.data[(lex.p)] == 96 { - goto tr728 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr728 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr728 - } - case lex.data[(lex.p)] >= 91: - goto tr728 - } - default: - goto tr728 - } - goto st492 - tr143: -//line scanner/scanner.rl:452 - (lex.p) = (lex.te) - 1 - { - lex.setTokenPosition(token) - tok = T_NUM_STRING - { - (lex.p)++ - lex.cs = 493 - goto _out - } - } - goto st493 - tr729: -//line scanner/scanner.rl:458 - lex.te = (lex.p) + 1 - { - c := lex.data[lex.p] - lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) - } - goto st493 - tr730: -//line scanner/scanner.rl:455 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE - lex.ret(2) - goto _out - } - goto st493 - tr733: -//line scanner/scanner.rl:456 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = TokenID(int(lex.data[lex.ts])) - { - (lex.p)++ - lex.cs = 493 - goto _out - } - } - goto st493 - tr738: -//line scanner/scanner.rl:457 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = TokenID(int(']')) - lex.ret(2) - goto _out - } - goto st493 - tr739: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:455 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE - lex.ret(2) - goto _out - } - goto st493 - tr740: -//line scanner/scanner.rl:458 - lex.te = (lex.p) - (lex.p)-- - { - c := lex.data[lex.p] - lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) - } - goto st493 + goto st497 tr741: -//line scanner/scanner.rl:456 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = TokenID(int(lex.data[lex.ts])) - { - (lex.p)++ - lex.cs = 493 - goto _out - } - } - goto st493 - tr743: -//line scanner/scanner.rl:453 +//line scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- { @@ -18873,27 +18937,13 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_VARIABLE { (lex.p)++ - lex.cs = 493 + lex.cs = 497 goto _out } } - goto st493 - tr744: -//line scanner/scanner.rl:452 - lex.te = (lex.p) - (lex.p)-- - { - lex.setTokenPosition(token) - tok = T_NUM_STRING - { - (lex.p)++ - lex.cs = 493 - goto _out - } - } - goto st493 - tr747: -//line scanner/scanner.rl:454 + goto st497 + tr743: +//line scanner/scanner.rl:462 lex.te = (lex.p) (lex.p)-- { @@ -18901,128 +18951,134 @@ func (lex *Lexer) Lex(lval Lval) int { tok = T_STRING { (lex.p)++ - lex.cs = 493 + lex.cs = 497 goto _out } } - goto st493 - st493: -//line NONE:1 - lex.ts = 0 - - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof493 - } - st_case_493: -//line NONE:1 - lex.ts = (lex.p) - -//line scanner/scanner.go:17504 - switch lex.data[(lex.p)] { - case 10: - goto st494 - case 13: - goto st495 - case 32: - goto tr730 - case 33: - goto tr733 - case 35: - goto tr730 - case 36: - goto st496 - case 39: - goto tr730 - case 48: - goto tr735 - case 92: - goto tr730 - case 93: - goto tr738 - case 96: - goto tr729 - case 124: - goto tr733 - case 126: - goto tr733 - } - switch { - case lex.data[(lex.p)] < 37: - switch { - case lex.data[(lex.p)] < 9: - if lex.data[(lex.p)] <= 8 { - goto tr729 - } - case lex.data[(lex.p)] > 12: - if 14 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 34 { - goto tr729 - } - default: - goto tr730 - } - case lex.data[(lex.p)] > 47: - switch { - case lex.data[(lex.p)] < 58: - if 49 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st499 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr729 - } - case lex.data[(lex.p)] >= 91: - goto tr733 - } - default: - goto tr733 - } - default: - goto tr733 - } - goto st502 - st494: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof494 - } - st_case_494: - goto tr739 - st495: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof495 - } - st_case_495: - if lex.data[(lex.p)] == 10 { - goto st494 - } - goto tr740 - st496: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof496 - } - st_case_496: - if lex.data[(lex.p)] == 96 { - goto tr741 - } - switch { - case lex.data[(lex.p)] < 91: - if lex.data[(lex.p)] <= 64 { - goto tr741 - } - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr741 - } - default: - goto tr741 - } goto st497 st497: +//line NONE:1 + lex.ts = 0 + if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof497 } st_case_497: +//line NONE:1 + lex.ts = (lex.p) + +//line scanner/scanner.go:17572 + switch lex.data[(lex.p)] { + case 36: + goto st498 + case 45: + goto tr736 + case 91: + goto tr738 + case 96: + goto tr734 + } + switch { + case lex.data[(lex.p)] < 92: + if lex.data[(lex.p)] <= 64 { + goto tr734 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr734 + } + default: + goto tr734 + } + goto st501 + st498: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof498 + } + st_case_498: + if lex.data[(lex.p)] == 96 { + goto tr739 + } + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto tr739 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr739 + } + default: + goto tr739 + } + goto st499 + st499: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof499 + } + st_case_499: + if lex.data[(lex.p)] == 96 { + goto tr741 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr741 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr741 + } + case lex.data[(lex.p)] >= 91: + goto tr741 + } + default: + goto tr741 + } + goto st499 + tr736: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st500 + st500: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof500 + } + st_case_500: +//line scanner/scanner.go:17653 + if lex.data[(lex.p)] == 62 { + goto st103 + } + goto tr739 + st103: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof103 + } + st_case_103: + if lex.data[(lex.p)] == 96 { + goto tr147 + } + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto tr147 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr147 + } + default: + goto tr147 + } + goto tr148 + st501: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof501 + } + st_case_501: if lex.data[(lex.p)] == 96 { goto tr743 } @@ -19043,714 +19099,658 @@ func (lex *Lexer) Lex(lval Lval) int { default: goto tr743 } - goto st497 - tr735: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st498 - st498: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof498 - } - st_case_498: -//line scanner/scanner.go:17641 - switch lex.data[(lex.p)] { - case 98: - goto st101 - case 120: - goto st102 - } - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st499 - } - goto tr744 - st499: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof499 - } - st_case_499: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st499 - } - goto tr744 - st101: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof101 - } - st_case_101: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { - goto st500 - } - goto tr143 - st500: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof500 - } - st_case_500: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { - goto st500 - } - goto tr744 - st102: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof102 - } - st_case_102: - switch { - case lex.data[(lex.p)] < 65: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st501 - } - case lex.data[(lex.p)] > 70: - if 97 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 102 { - goto st501 - } - default: - goto st501 - } - goto tr143 - st501: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof501 - } - st_case_501: - switch { - case lex.data[(lex.p)] < 65: - if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { - goto st501 - } - case lex.data[(lex.p)] > 70: - if 97 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 102 { - goto st501 - } - default: - goto st501 - } - goto tr744 - st502: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof502 - } - st_case_502: - if lex.data[(lex.p)] == 96 { - goto tr747 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr747 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr747 - } - case lex.data[(lex.p)] >= 91: - goto tr747 - } - default: - goto tr747 - } - goto st502 - tr146: - lex.cs = 503 -//line scanner/scanner.rl:466 + goto st501 + tr149: +//line scanner/scanner.rl:468 (lex.p) = (lex.te) - 1 { - lex.ungetCnt(1) - lex.cs = 114 - } - goto _again - tr148: - lex.cs = 503 -//line scanner/scanner.rl:465 - lex.te = (lex.p) + 1 - { - lex.ungetCnt(1) lex.setTokenPosition(token) - tok = T_STRING_VARNAME - lex.cs = 114 + tok = T_NUM_STRING { (lex.p)++ + lex.cs = 502 goto _out } } - goto _again - tr748: - lex.cs = 503 -//line scanner/scanner.rl:466 + goto st502 + tr744: +//line scanner/scanner.rl:474 lex.te = (lex.p) + 1 { - lex.ungetCnt(1) - lex.cs = 114 + c := lex.data[lex.p] + lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } - goto _again - tr750: - lex.cs = 503 -//line scanner/scanner.rl:466 + goto st502 + tr745: +//line scanner/scanner.rl:471 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + lex.ret(2) + goto _out + } + goto st502 + tr748: +//line scanner/scanner.rl:472 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int(lex.data[lex.ts])) + { + (lex.p)++ + lex.cs = 502 + goto _out + } + } + goto st502 + tr752: +//line scanner/scanner.rl:473 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int(']')) + lex.ret(2) + goto _out + } + goto st502 + tr753: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:471 lex.te = (lex.p) (lex.p)-- { - lex.ungetCnt(1) - lex.cs = 114 + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + lex.ret(2) + goto _out } - goto _again - st503: + goto st502 + tr754: +//line scanner/scanner.rl:474 + lex.te = (lex.p) + (lex.p)-- + { + c := lex.data[lex.p] + lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) + } + goto st502 + tr755: +//line scanner/scanner.rl:472 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = TokenID(int(lex.data[lex.ts])) + { + (lex.p)++ + lex.cs = 502 + goto _out + } + } + goto st502 + tr757: +//line scanner/scanner.rl:469 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_VARIABLE + { + (lex.p)++ + lex.cs = 502 + goto _out + } + } + goto st502 + tr758: +//line scanner/scanner.rl:468 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_NUM_STRING + { + (lex.p)++ + lex.cs = 502 + goto _out + } + } + goto st502 + tr762: +//line scanner/scanner.rl:470 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_STRING + { + (lex.p)++ + lex.cs = 502 + goto _out + } + } + goto st502 + st502: //line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof503 + goto _test_eof502 } - st_case_503: + st_case_502: //line NONE:1 lex.ts = (lex.p) -//line scanner/scanner.go:17777 - if lex.data[(lex.p)] == 96 { +//line scanner/scanner.go:17785 + switch lex.data[(lex.p)] { + case 10: + goto st503 + case 13: + goto st504 + case 32: + goto tr745 + case 33: + goto tr748 + case 35: + goto tr745 + case 36: + goto st505 + case 39: + goto tr745 + case 48: + goto tr750 + case 92: + goto tr745 + case 93: + goto tr752 + case 96: + goto tr744 + case 124: + goto tr748 + case 126: goto tr748 } switch { - case lex.data[(lex.p)] < 91: - if lex.data[(lex.p)] <= 64 { - goto tr748 + case lex.data[(lex.p)] < 37: + switch { + case lex.data[(lex.p)] < 9: + if lex.data[(lex.p)] <= 8 { + goto tr744 + } + case lex.data[(lex.p)] > 12: + if 14 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 34 { + goto tr744 + } + default: + goto tr745 } - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + case lex.data[(lex.p)] > 47: + switch { + case lex.data[(lex.p)] < 58: + if 49 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr150 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr744 + } + case lex.data[(lex.p)] >= 91: + goto tr748 + } + default: goto tr748 } default: goto tr748 } - goto tr749 - tr749: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st504 + goto st511 + st503: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof503 + } + st_case_503: + goto tr753 st504: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof504 } st_case_504: -//line scanner/scanner.go:17804 - switch lex.data[(lex.p)] { - case 91: - goto tr148 - case 96: - goto tr750 - case 125: - goto tr148 + if lex.data[(lex.p)] == 10 { + goto st503 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr750 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr750 - } - case lex.data[(lex.p)] >= 92: - goto tr750 - } - default: - goto tr750 - } - goto st103 - st103: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof103 - } - st_case_103: - switch lex.data[(lex.p)] { - case 91: - goto tr148 - case 96: - goto tr146 - case 125: - goto tr148 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr146 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr146 - } - case lex.data[(lex.p)] >= 92: - goto tr146 - } - default: - goto tr146 - } - goto st103 - tr149: -//line scanner/scanner.rl:470 - (lex.p) = (lex.te) - 1 - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st505 - tr751: - lex.cs = 505 -//line scanner/scanner.rl:472 - lex.te = (lex.p) + 1 - { - lex.ungetCnt(1) - lex.cs = 114 - } - goto _again - tr754: - lex.cs = 505 -//line scanner/scanner.rl:471 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = TokenID(int('(')) - lex.cs = 509 - { - (lex.p)++ - goto _out - } - } - goto _again - tr755: -//line scanner/scanner.rl:470 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st505 - tr757: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:470 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st505 - tr761: - lex.cs = 505 -//line scanner/scanner.rl:472 - lex.te = (lex.p) - (lex.p)-- - { - lex.ungetCnt(1) - lex.cs = 114 - } - goto _again + goto tr754 st505: -//line NONE:1 - lex.ts = 0 - if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof505 } st_case_505: -//line NONE:1 - lex.ts = (lex.p) - -//line scanner/scanner.go:17911 - switch lex.data[(lex.p)] { - case 10: - goto tr150 - case 13: - goto st508 - case 32: - goto tr752 - case 40: - goto tr754 + if lex.data[(lex.p)] == 96 { + goto tr755 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr752 + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto tr755 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr755 + } + default: + goto tr755 } - goto tr751 - tr752: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st506 - tr758: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) goto st506 st506: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof506 } st_case_506: -//line scanner/scanner.go:17943 - switch lex.data[(lex.p)] { - case 10: - goto tr150 - case 13: - goto st104 - case 32: - goto tr752 + if lex.data[(lex.p)] == 96 { + goto tr757 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr752 + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr757 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr757 + } + case lex.data[(lex.p)] >= 91: + goto tr757 + } + default: + goto tr757 } - goto tr755 - tr150: + goto st506 + tr750: //line NONE:1 lex.te = (lex.p) + 1 - goto st507 - tr759: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) goto st507 st507: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof507 } st_case_507: -//line scanner/scanner.go:17973 +//line scanner/scanner.go:17922 switch lex.data[(lex.p)] { - case 10: - goto tr759 - case 13: - goto tr760 - case 32: - goto tr758 + case 95: + goto st104 + case 98: + goto st105 + case 120: + goto st106 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr758 - } - goto tr757 - tr760: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st104 - st104: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof104 - } - st_case_104: -//line scanner/scanner.go:17995 - if lex.data[(lex.p)] == 10 { + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { goto tr150 } - goto tr149 + goto tr758 + tr150: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st508 st508: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof508 } st_case_508: - if lex.data[(lex.p)] == 10 { +//line scanner/scanner.go:17945 + if lex.data[(lex.p)] == 95 { + goto st104 + } + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { goto tr150 } - goto tr761 + goto tr758 + st104: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof104 + } + st_case_104: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr150 + } + goto tr149 + st105: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof105 + } + st_case_105: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { + goto tr151 + } + goto tr149 tr151: -//line scanner/scanner.rl:476 - (lex.p) = (lex.te) - 1 - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st509 - tr762: - lex.cs = 509 -//line scanner/scanner.rl:478 - lex.te = (lex.p) + 1 - { - lex.ungetCnt(1) - lex.cs = 114 - } - goto _again - tr765: - lex.cs = 509 -//line scanner/scanner.rl:477 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(token) - tok = TokenID(int(')')) - lex.cs = 513 - { - (lex.p)++ - goto _out - } - } - goto _again - tr766: -//line scanner/scanner.rl:476 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st509 - tr768: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:476 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st509 - tr772: - lex.cs = 509 -//line scanner/scanner.rl:478 - lex.te = (lex.p) - (lex.p)-- - { - lex.ungetCnt(1) - lex.cs = 114 - } - goto _again - st509: //line NONE:1 - lex.ts = 0 + lex.te = (lex.p) + 1 + goto st509 + st509: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof509 } st_case_509: -//line NONE:1 - lex.ts = (lex.p) - -//line scanner/scanner.go:18058 - switch lex.data[(lex.p)] { - case 10: +//line scanner/scanner.go:17981 + if lex.data[(lex.p)] == 95 { + goto st105 + } + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { + goto tr151 + } + goto tr758 + st106: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof106 + } + st_case_106: + switch { + case lex.data[(lex.p)] < 65: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr152 + } + case lex.data[(lex.p)] > 70: + if 97 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 102 { + goto tr152 + } + default: goto tr152 - case 13: - goto st512 - case 32: - goto tr763 - case 41: - goto tr765 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr763 - } - goto tr762 - tr763: + goto tr149 + tr152: //line NONE:1 lex.te = (lex.p) + 1 - goto st510 - tr769: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) goto st510 st510: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof510 } st_case_510: -//line scanner/scanner.go:18090 - switch lex.data[(lex.p)] { - case 10: +//line scanner/scanner.go:18017 + if lex.data[(lex.p)] == 95 { + goto st106 + } + switch { + case lex.data[(lex.p)] < 65: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr152 + } + case lex.data[(lex.p)] > 70: + if 97 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 102 { + goto tr152 + } + default: goto tr152 - case 13: - goto st105 - case 32: - goto tr763 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr763 - } - goto tr766 - tr152: -//line NONE:1 - lex.te = (lex.p) + 1 - - goto st511 - tr770: -//line NONE:1 - lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st511 + goto tr758 st511: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof511 } st_case_511: -//line scanner/scanner.go:18120 - switch lex.data[(lex.p)] { - case 10: - goto tr770 - case 13: - goto tr771 - case 32: - goto tr769 + if lex.data[(lex.p)] == 96 { + goto tr762 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr769 + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr762 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr762 + } + case lex.data[(lex.p)] >= 91: + goto tr762 + } + default: + goto tr762 } - goto tr768 - tr771: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) - goto st105 - st105: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof105 - } - st_case_105: -//line scanner/scanner.go:18142 - if lex.data[(lex.p)] == 10 { - goto tr152 - } - goto tr151 - st512: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof512 - } - st_case_512: - if lex.data[(lex.p)] == 10 { - goto tr152 - } - goto tr772 + goto st511 tr153: + lex.cs = 512 //line scanner/scanner.rl:482 (lex.p) = (lex.te) - 1 { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.ungetCnt(1) + lex.cs = 121 } - goto st513 - tr773: - lex.cs = 513 -//line scanner/scanner.rl:484 + goto _again + tr155: + lex.cs = 512 +//line scanner/scanner.rl:481 lex.te = (lex.p) + 1 { lex.ungetCnt(1) - lex.cs = 114 - } - goto _again - tr776: - lex.cs = 513 -//line scanner/scanner.rl:483 - lex.te = (lex.p) + 1 - { lex.setTokenPosition(token) - tok = TokenID(int(';')) - lex.cs = 517 + tok = T_STRING_VARNAME + lex.cs = 121 { (lex.p)++ goto _out } } goto _again - tr777: + tr763: + lex.cs = 512 //line scanner/scanner.rl:482 - lex.te = (lex.p) - (lex.p)-- + lex.te = (lex.p) + 1 { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.ungetCnt(1) + lex.cs = 121 } - goto st513 - tr779: -//line scanner/scanner.rl:64 - lex.NewLines.Append(lex.p) + goto _again + tr765: + lex.cs = 512 //line scanner/scanner.rl:482 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) - } - goto st513 - tr783: - lex.cs = 513 -//line scanner/scanner.rl:484 lex.te = (lex.p) (lex.p)-- { lex.ungetCnt(1) - lex.cs = 114 + lex.cs = 121 } goto _again - st513: + st512: //line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof513 + goto _test_eof512 } - st_case_513: + st_case_512: //line NONE:1 lex.ts = (lex.p) -//line scanner/scanner.go:18205 +//line scanner/scanner.go:18096 + if lex.data[(lex.p)] == 96 { + goto tr763 + } + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto tr763 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr763 + } + default: + goto tr763 + } + goto tr764 + tr764: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st513 + st513: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof513 + } + st_case_513: +//line scanner/scanner.go:18123 switch lex.data[(lex.p)] { - case 10: - goto tr154 - case 13: - goto st516 - case 32: - goto tr774 - case 59: - goto tr776 + case 91: + goto tr155 + case 96: + goto tr765 + case 125: + goto tr155 } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr774 + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr765 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr765 + } + case lex.data[(lex.p)] >= 92: + goto tr765 + } + default: + goto tr765 + } + goto st107 + st107: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof107 + } + st_case_107: + switch lex.data[(lex.p)] { + case 91: + goto tr155 + case 96: + goto tr153 + case 125: + goto tr155 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr153 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr153 + } + case lex.data[(lex.p)] >= 92: + goto tr153 + } + default: + goto tr153 + } + goto st107 + tr156: +//line scanner/scanner.rl:486 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) } - goto tr773 - tr774: -//line NONE:1 - lex.te = (lex.p) + 1 - goto st514 - tr780: -//line NONE:1 + tr766: + lex.cs = 514 +//line scanner/scanner.rl:488 lex.te = (lex.p) + 1 - -//line scanner/scanner.rl:64 + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + tr769: + lex.cs = 514 +//line scanner/scanner.rl:487 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int('(')) + lex.cs = 518 + { + (lex.p)++ + goto _out + } + } + goto _again + tr770: +//line scanner/scanner.rl:486 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st514 + tr772: +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:486 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } goto st514 + tr776: + lex.cs = 514 +//line scanner/scanner.rl:488 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again st514: +//line NONE:1 + lex.ts = 0 + if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof514 } st_case_514: -//line scanner/scanner.go:18237 +//line NONE:1 + lex.ts = (lex.p) + +//line scanner/scanner.go:18230 switch lex.data[(lex.p)] { case 10: - goto tr154 + goto tr157 case 13: - goto st106 + goto st517 case 32: - goto tr774 + goto tr767 + case 40: + goto tr769 } if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr774 + goto tr767 } - goto tr777 - tr154: + goto tr766 + tr767: //line NONE:1 lex.te = (lex.p) + 1 goto st515 - tr781: + tr773: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:64 +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) goto st515 st515: @@ -19758,43 +19758,407 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof515 } st_case_515: -//line scanner/scanner.go:18267 +//line scanner/scanner.go:18262 switch lex.data[(lex.p)] { case 10: - goto tr781 + goto tr157 case 13: - goto tr782 + goto st108 case 32: - goto tr780 + goto tr767 } if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr780 + goto tr767 } - goto tr779 - tr782: -//line scanner/scanner.rl:64 + goto tr770 + tr157: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st516 + tr774: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) - goto st106 - st106: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof106 - } - st_case_106: -//line scanner/scanner.go:18289 - if lex.data[(lex.p)] == 10 { - goto tr154 - } - goto tr153 + goto st516 st516: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof516 } st_case_516: +//line scanner/scanner.go:18292 + switch lex.data[(lex.p)] { + case 10: + goto tr774 + case 13: + goto tr775 + case 32: + goto tr773 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr773 + } + goto tr772 + tr775: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st108 + st108: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof108 + } + st_case_108: +//line scanner/scanner.go:18314 if lex.data[(lex.p)] == 10 { - goto tr154 + goto tr157 + } + goto tr156 + st517: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof517 + } + st_case_517: + if lex.data[(lex.p)] == 10 { + goto tr157 + } + goto tr776 + tr158: +//line scanner/scanner.rl:492 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st518 + tr777: + lex.cs = 518 +//line scanner/scanner.rl:494 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + tr780: + lex.cs = 518 +//line scanner/scanner.rl:493 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int(')')) + lex.cs = 522 + { + (lex.p)++ + goto _out + } + } + goto _again + tr781: +//line scanner/scanner.rl:492 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st518 + tr783: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:492 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st518 + tr787: + lex.cs = 518 +//line scanner/scanner.rl:494 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + st518: +//line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof518 + } + st_case_518: +//line NONE:1 + lex.ts = (lex.p) + +//line scanner/scanner.go:18377 + switch lex.data[(lex.p)] { + case 10: + goto tr159 + case 13: + goto st521 + case 32: + goto tr778 + case 41: + goto tr780 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr778 + } + goto tr777 + tr778: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st519 + tr784: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st519 + st519: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof519 + } + st_case_519: +//line scanner/scanner.go:18409 + switch lex.data[(lex.p)] { + case 10: + goto tr159 + case 13: + goto st109 + case 32: + goto tr778 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr778 + } + goto tr781 + tr159: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st520 + tr785: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st520 + st520: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof520 + } + st_case_520: +//line scanner/scanner.go:18439 + switch lex.data[(lex.p)] { + case 10: + goto tr785 + case 13: + goto tr786 + case 32: + goto tr784 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr784 } goto tr783 tr786: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st109 + st109: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof109 + } + st_case_109: +//line scanner/scanner.go:18461 + if lex.data[(lex.p)] == 10 { + goto tr159 + } + goto tr158 + st521: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof521 + } + st_case_521: + if lex.data[(lex.p)] == 10 { + goto tr159 + } + goto tr787 + tr160: +//line scanner/scanner.rl:498 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st522 + tr788: + lex.cs = 522 +//line scanner/scanner.rl:500 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + tr791: + lex.cs = 522 +//line scanner/scanner.rl:499 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int(';')) + lex.cs = 526 + { + (lex.p)++ + goto _out + } + } + goto _again + tr792: +//line scanner/scanner.rl:498 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st522 + tr794: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) +//line scanner/scanner.rl:498 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st522 + tr798: + lex.cs = 522 +//line scanner/scanner.rl:500 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + st522: +//line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof522 + } + st_case_522: +//line NONE:1 + lex.ts = (lex.p) + +//line scanner/scanner.go:18524 + switch lex.data[(lex.p)] { + case 10: + goto tr161 + case 13: + goto st525 + case 32: + goto tr789 + case 59: + goto tr791 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr789 + } + goto tr788 + tr789: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st523 + tr795: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st523 + st523: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof523 + } + st_case_523: +//line scanner/scanner.go:18556 + switch lex.data[(lex.p)] { + case 10: + goto tr161 + case 13: + goto st110 + case 32: + goto tr789 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr789 + } + goto tr792 + tr161: +//line NONE:1 + lex.te = (lex.p) + 1 + + goto st524 + tr796: +//line NONE:1 + lex.te = (lex.p) + 1 + +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st524 + st524: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof524 + } + st_case_524: +//line scanner/scanner.go:18586 + switch lex.data[(lex.p)] { + case 10: + goto tr796 + case 13: + goto tr797 + case 32: + goto tr795 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr795 + } + goto tr794 + tr797: +//line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st110 + st110: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof110 + } + st_case_110: +//line scanner/scanner.go:18608 + if lex.data[(lex.p)] == 10 { + goto tr161 + } + goto tr160 + st525: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof525 + } + st_case_525: + if lex.data[(lex.p)] == 10 { + goto tr161 + } + goto tr798 + tr801: //line NONE:1 switch lex.act { case 0: @@ -19803,25 +20167,25 @@ func (lex *Lexer) Lex(lval Lval) int { goto st0 } } - case 182: + case 186: { (lex.p) = (lex.te) - 1 lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) } } - goto st517 - tr787: -//line scanner/scanner.rl:64 + goto st526 + tr802: +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:488 +//line scanner/scanner.rl:504 lex.te = (lex.p) (lex.p)-- { lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) } - goto st517 - st517: + goto st526 + st526: //line NONE:1 lex.ts = 0 @@ -19829,70 +20193,58 @@ func (lex *Lexer) Lex(lval Lval) int { lex.act = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof517 + goto _test_eof526 } - st_case_517: + st_case_526: //line NONE:1 lex.ts = (lex.p) -//line scanner/scanner.go:18336 +//line scanner/scanner.go:18655 if lex.data[(lex.p)] == 10 { - goto st519 + goto st528 } - goto tr784 - tr784: + goto tr799 + tr799: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:488 - lex.act = 182 - goto st518 - tr788: +//line scanner/scanner.rl:504 + lex.act = 186 + goto st527 + tr803: //line NONE:1 lex.te = (lex.p) + 1 -//line scanner/scanner.rl:64 +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) -//line scanner/scanner.rl:488 - lex.act = 182 - goto st518 - st518: +//line scanner/scanner.rl:504 + lex.act = 186 + goto st527 + st527: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof518 + goto _test_eof527 } - st_case_518: -//line scanner/scanner.go:18362 + st_case_527: +//line scanner/scanner.go:18681 if lex.data[(lex.p)] == 10 { - goto st519 + goto st528 } - goto tr784 - tr789: -//line scanner/scanner.rl:64 + goto tr799 + tr804: +//line scanner/scanner.rl:66 lex.NewLines.Append(lex.p) - goto st519 - st519: + goto st528 + st528: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof519 + goto _test_eof528 } - st_case_519: -//line scanner/scanner.go:18376 + st_case_528: +//line scanner/scanner.go:18695 if lex.data[(lex.p)] == 10 { - goto tr789 + goto tr804 } - goto tr788 + goto tr803 st_out: - _test_eof107: - lex.cs = 107 - goto _test_eof - _test_eof108: - lex.cs = 108 - goto _test_eof - _test_eof109: - lex.cs = 109 - goto _test_eof - _test_eof110: - lex.cs = 110 - goto _test_eof _test_eof111: lex.cs = 111 goto _test_eof @@ -19902,18 +20254,9 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof1: lex.cs = 1 goto _test_eof - _test_eof2: - lex.cs = 2 - goto _test_eof - _test_eof3: - lex.cs = 3 - goto _test_eof _test_eof113: lex.cs = 113 goto _test_eof - _test_eof4: - lex.cs = 4 - goto _test_eof _test_eof114: lex.cs = 114 goto _test_eof @@ -19923,9 +20266,6 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof116: lex.cs = 116 goto _test_eof - _test_eof5: - lex.cs = 5 - goto _test_eof _test_eof117: lex.cs = 117 goto _test_eof @@ -19935,20 +20275,20 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof119: lex.cs = 119 goto _test_eof + _test_eof2: + lex.cs = 2 + goto _test_eof + _test_eof3: + lex.cs = 3 + goto _test_eof + _test_eof4: + lex.cs = 4 + goto _test_eof _test_eof120: lex.cs = 120 goto _test_eof - _test_eof6: - lex.cs = 6 - goto _test_eof - _test_eof7: - lex.cs = 7 - goto _test_eof - _test_eof8: - lex.cs = 8 - goto _test_eof - _test_eof9: - lex.cs = 9 + _test_eof5: + lex.cs = 5 goto _test_eof _test_eof121: lex.cs = 121 @@ -19959,6 +20299,9 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof123: lex.cs = 123 goto _test_eof + _test_eof6: + lex.cs = 6 + goto _test_eof _test_eof124: lex.cs = 124 goto _test_eof @@ -19971,18 +20314,48 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof127: lex.cs = 127 goto _test_eof + _test_eof7: + lex.cs = 7 + goto _test_eof + _test_eof8: + lex.cs = 8 + goto _test_eof + _test_eof9: + lex.cs = 9 + goto _test_eof _test_eof10: lex.cs = 10 goto _test_eof - _test_eof11: - lex.cs = 11 - goto _test_eof _test_eof128: lex.cs = 128 goto _test_eof + _test_eof129: + lex.cs = 129 + goto _test_eof + _test_eof130: + lex.cs = 130 + goto _test_eof + _test_eof131: + lex.cs = 131 + goto _test_eof + _test_eof132: + lex.cs = 132 + goto _test_eof + _test_eof133: + lex.cs = 133 + goto _test_eof + _test_eof134: + lex.cs = 134 + goto _test_eof + _test_eof11: + lex.cs = 11 + goto _test_eof _test_eof12: lex.cs = 12 goto _test_eof + _test_eof135: + lex.cs = 135 + goto _test_eof _test_eof13: lex.cs = 13 goto _test_eof @@ -20142,125 +20515,74 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof65: lex.cs = 65 goto _test_eof - _test_eof129: - lex.cs = 129 - goto _test_eof - _test_eof130: - lex.cs = 130 - goto _test_eof - _test_eof131: - lex.cs = 131 - goto _test_eof - _test_eof132: - lex.cs = 132 - goto _test_eof - _test_eof133: - lex.cs = 133 - goto _test_eof _test_eof66: lex.cs = 66 goto _test_eof - _test_eof134: - lex.cs = 134 - goto _test_eof - _test_eof67: - lex.cs = 67 - goto _test_eof - _test_eof68: - lex.cs = 68 - goto _test_eof - _test_eof135: - lex.cs = 135 - goto _test_eof _test_eof136: lex.cs = 136 goto _test_eof - _test_eof69: - lex.cs = 69 - goto _test_eof - _test_eof70: - lex.cs = 70 - goto _test_eof - _test_eof71: - lex.cs = 71 - goto _test_eof _test_eof137: lex.cs = 137 goto _test_eof _test_eof138: lex.cs = 138 goto _test_eof - _test_eof72: - lex.cs = 72 - goto _test_eof _test_eof139: lex.cs = 139 goto _test_eof - _test_eof73: - lex.cs = 73 - goto _test_eof _test_eof140: lex.cs = 140 goto _test_eof + _test_eof67: + lex.cs = 67 + goto _test_eof _test_eof141: lex.cs = 141 goto _test_eof + _test_eof68: + lex.cs = 68 + goto _test_eof + _test_eof69: + lex.cs = 69 + goto _test_eof _test_eof142: lex.cs = 142 goto _test_eof - _test_eof74: - lex.cs = 74 - goto _test_eof - _test_eof75: - lex.cs = 75 - goto _test_eof - _test_eof76: - lex.cs = 76 - goto _test_eof - _test_eof77: - lex.cs = 77 + _test_eof70: + lex.cs = 70 goto _test_eof _test_eof143: lex.cs = 143 goto _test_eof + _test_eof71: + lex.cs = 71 + goto _test_eof + _test_eof72: + lex.cs = 72 + goto _test_eof + _test_eof73: + lex.cs = 73 + goto _test_eof _test_eof144: lex.cs = 144 goto _test_eof - _test_eof78: - lex.cs = 78 - goto _test_eof _test_eof145: lex.cs = 145 goto _test_eof _test_eof146: lex.cs = 146 goto _test_eof - _test_eof79: - lex.cs = 79 + _test_eof74: + lex.cs = 74 goto _test_eof - _test_eof80: - lex.cs = 80 - goto _test_eof - _test_eof81: - lex.cs = 81 - goto _test_eof - _test_eof82: - lex.cs = 82 + _test_eof75: + lex.cs = 75 goto _test_eof _test_eof147: lex.cs = 147 goto _test_eof - _test_eof83: - lex.cs = 83 - goto _test_eof - _test_eof84: - lex.cs = 84 - goto _test_eof - _test_eof85: - lex.cs = 85 - goto _test_eof - _test_eof86: - lex.cs = 86 + _test_eof76: + lex.cs = 76 goto _test_eof _test_eof148: lex.cs = 148 @@ -20271,24 +20593,60 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof150: lex.cs = 150 goto _test_eof + _test_eof77: + lex.cs = 77 + goto _test_eof + _test_eof78: + lex.cs = 78 + goto _test_eof + _test_eof79: + lex.cs = 79 + goto _test_eof + _test_eof80: + lex.cs = 80 + goto _test_eof _test_eof151: lex.cs = 151 goto _test_eof _test_eof152: lex.cs = 152 goto _test_eof + _test_eof81: + lex.cs = 81 + goto _test_eof _test_eof153: lex.cs = 153 goto _test_eof _test_eof154: lex.cs = 154 goto _test_eof + _test_eof82: + lex.cs = 82 + goto _test_eof + _test_eof83: + lex.cs = 83 + goto _test_eof + _test_eof84: + lex.cs = 84 + goto _test_eof + _test_eof85: + lex.cs = 85 + goto _test_eof _test_eof155: lex.cs = 155 goto _test_eof + _test_eof86: + lex.cs = 86 + goto _test_eof _test_eof87: lex.cs = 87 goto _test_eof + _test_eof88: + lex.cs = 88 + goto _test_eof + _test_eof89: + lex.cs = 89 + goto _test_eof _test_eof156: lex.cs = 156 goto _test_eof @@ -20313,6 +20671,9 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof163: lex.cs = 163 goto _test_eof + _test_eof90: + lex.cs = 90 + goto _test_eof _test_eof164: lex.cs = 164 goto _test_eof @@ -20328,12 +20689,6 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof168: lex.cs = 168 goto _test_eof - _test_eof88: - lex.cs = 88 - goto _test_eof - _test_eof89: - lex.cs = 89 - goto _test_eof _test_eof169: lex.cs = 169 goto _test_eof @@ -20361,6 +20716,12 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof177: lex.cs = 177 goto _test_eof + _test_eof91: + lex.cs = 91 + goto _test_eof + _test_eof92: + lex.cs = 92 + goto _test_eof _test_eof178: lex.cs = 178 goto _test_eof @@ -20994,24 +21355,6 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof388: lex.cs = 388 goto _test_eof - _test_eof90: - lex.cs = 90 - goto _test_eof - _test_eof91: - lex.cs = 91 - goto _test_eof - _test_eof92: - lex.cs = 92 - goto _test_eof - _test_eof93: - lex.cs = 93 - goto _test_eof - _test_eof94: - lex.cs = 94 - goto _test_eof - _test_eof95: - lex.cs = 95 - goto _test_eof _test_eof389: lex.cs = 389 goto _test_eof @@ -21039,6 +21382,24 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof397: lex.cs = 397 goto _test_eof + _test_eof93: + lex.cs = 93 + goto _test_eof + _test_eof94: + lex.cs = 94 + goto _test_eof + _test_eof95: + lex.cs = 95 + goto _test_eof + _test_eof96: + lex.cs = 96 + goto _test_eof + _test_eof97: + lex.cs = 97 + goto _test_eof + _test_eof98: + lex.cs = 98 + goto _test_eof _test_eof398: lex.cs = 398 goto _test_eof @@ -21231,9 +21592,6 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof461: lex.cs = 461 goto _test_eof - _test_eof96: - lex.cs = 96 - goto _test_eof _test_eof462: lex.cs = 462 goto _test_eof @@ -21258,12 +21616,12 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof469: lex.cs = 469 goto _test_eof - _test_eof97: - lex.cs = 97 - goto _test_eof _test_eof470: lex.cs = 470 goto _test_eof + _test_eof99: + lex.cs = 99 + goto _test_eof _test_eof471: lex.cs = 471 goto _test_eof @@ -21279,9 +21637,6 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof475: lex.cs = 475 goto _test_eof - _test_eof98: - lex.cs = 98 - goto _test_eof _test_eof476: lex.cs = 476 goto _test_eof @@ -21291,6 +21646,9 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof478: lex.cs = 478 goto _test_eof + _test_eof100: + lex.cs = 100 + goto _test_eof _test_eof479: lex.cs = 479 goto _test_eof @@ -21300,9 +21658,6 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof481: lex.cs = 481 goto _test_eof - _test_eof99: - lex.cs = 99 - goto _test_eof _test_eof482: lex.cs = 482 goto _test_eof @@ -21312,6 +21667,9 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof484: lex.cs = 484 goto _test_eof + _test_eof101: + lex.cs = 101 + goto _test_eof _test_eof485: lex.cs = 485 goto _test_eof @@ -21330,12 +21688,12 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof490: lex.cs = 490 goto _test_eof + _test_eof102: + lex.cs = 102 + goto _test_eof _test_eof491: lex.cs = 491 goto _test_eof - _test_eof100: - lex.cs = 100 - goto _test_eof _test_eof492: lex.cs = 492 goto _test_eof @@ -21360,14 +21718,11 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof499: lex.cs = 499 goto _test_eof - _test_eof101: - lex.cs = 101 - goto _test_eof _test_eof500: lex.cs = 500 goto _test_eof - _test_eof102: - lex.cs = 102 + _test_eof103: + lex.cs = 103 goto _test_eof _test_eof501: lex.cs = 501 @@ -21381,9 +21736,6 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof504: lex.cs = 504 goto _test_eof - _test_eof103: - lex.cs = 103 - goto _test_eof _test_eof505: lex.cs = 505 goto _test_eof @@ -21393,42 +21745,48 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof507: lex.cs = 507 goto _test_eof - _test_eof104: - lex.cs = 104 - goto _test_eof _test_eof508: lex.cs = 508 goto _test_eof + _test_eof104: + lex.cs = 104 + goto _test_eof + _test_eof105: + lex.cs = 105 + goto _test_eof _test_eof509: lex.cs = 509 goto _test_eof + _test_eof106: + lex.cs = 106 + goto _test_eof _test_eof510: lex.cs = 510 goto _test_eof _test_eof511: lex.cs = 511 goto _test_eof - _test_eof105: - lex.cs = 105 - goto _test_eof _test_eof512: lex.cs = 512 goto _test_eof _test_eof513: lex.cs = 513 goto _test_eof + _test_eof107: + lex.cs = 107 + goto _test_eof _test_eof514: lex.cs = 514 goto _test_eof _test_eof515: lex.cs = 515 goto _test_eof - _test_eof106: - lex.cs = 106 - goto _test_eof _test_eof516: lex.cs = 516 goto _test_eof + _test_eof108: + lex.cs = 108 + goto _test_eof _test_eof517: lex.cs = 517 goto _test_eof @@ -21438,1014 +21796,1063 @@ func (lex *Lexer) Lex(lval Lval) int { _test_eof519: lex.cs = 519 goto _test_eof + _test_eof520: + lex.cs = 520 + goto _test_eof + _test_eof109: + lex.cs = 109 + goto _test_eof + _test_eof521: + lex.cs = 521 + goto _test_eof + _test_eof522: + lex.cs = 522 + goto _test_eof + _test_eof523: + lex.cs = 523 + goto _test_eof + _test_eof524: + lex.cs = 524 + goto _test_eof + _test_eof110: + lex.cs = 110 + goto _test_eof + _test_eof525: + lex.cs = 525 + goto _test_eof + _test_eof526: + lex.cs = 526 + goto _test_eof + _test_eof527: + lex.cs = 527 + goto _test_eof + _test_eof528: + lex.cs = 528 + goto _test_eof _test_eof: { } if (lex.p) == eof { switch lex.cs { - case 108: - goto tr158 - case 109: - goto tr160 - case 110: - goto tr158 - case 111: - goto tr158 case 112: - goto tr165 + goto tr164 case 1: goto tr0 - case 2: - goto tr0 - case 3: - goto tr0 case 113: - goto tr168 - case 4: - goto tr0 + goto tr165 case 115: - goto tr222 + goto tr169 case 116: - goto tr224 - case 5: - goto tr6 + goto tr171 case 117: - goto tr228 + goto tr169 case 118: - goto tr229 + goto tr169 case 119: - goto tr231 + goto tr176 + case 2: + goto tr3 + case 3: + goto tr3 + case 4: + goto tr3 case 120: - goto tr233 - case 6: - goto tr8 - case 7: - goto tr8 - case 8: - goto tr8 - case 9: - goto tr8 - case 121: - goto tr234 + goto tr179 + case 5: + goto tr3 case 122: - goto tr236 + goto tr232 case 123: - goto tr229 + goto tr234 + case 6: + goto tr9 case 124: - goto tr240 + goto tr238 case 125: - goto tr229 + goto tr239 case 126: - goto tr229 + goto tr241 case 127: - goto tr228 + goto tr243 + case 7: + goto tr11 + case 8: + goto tr11 + case 9: + goto tr11 case 10: - goto tr15 - case 11: - goto tr15 + goto tr11 case 128: - goto tr229 - case 12: - goto tr19 - case 13: - goto tr19 - case 14: - goto tr19 - case 15: - goto tr19 - case 16: - goto tr19 - case 17: - goto tr19 - case 18: - goto tr19 - case 19: - goto tr19 - case 20: - goto tr19 - case 21: - goto tr19 - case 22: - goto tr19 - case 23: - goto tr19 - case 24: - goto tr19 - case 25: - goto tr19 - case 26: - goto tr19 - case 27: - goto tr19 - case 28: - goto tr19 - case 29: - goto tr19 - case 30: - goto tr19 - case 31: - goto tr19 - case 32: - goto tr19 - case 33: - goto tr19 - case 34: - goto tr19 - case 35: - goto tr19 - case 36: - goto tr19 - case 37: - goto tr19 - case 38: - goto tr19 - case 39: - goto tr19 - case 40: - goto tr19 - case 41: - goto tr19 - case 42: - goto tr19 - case 43: - goto tr19 - case 44: - goto tr19 - case 45: - goto tr19 - case 46: - goto tr19 - case 47: - goto tr19 - case 48: - goto tr19 - case 49: - goto tr19 - case 50: - goto tr19 - case 51: - goto tr19 - case 52: - goto tr19 - case 53: - goto tr19 - case 54: - goto tr19 - case 55: - goto tr19 - case 56: - goto tr19 - case 57: - goto tr19 - case 58: - goto tr19 - case 59: - goto tr19 - case 60: - goto tr19 - case 61: - goto tr19 - case 62: - goto tr19 - case 63: - goto tr19 - case 64: - goto tr19 - case 65: - goto tr19 + goto tr244 case 129: - goto tr229 - case 130: goto tr246 + case 130: + goto tr239 case 131: - goto tr229 + goto tr250 case 132: - goto tr229 + goto tr239 case 133: - goto tr229 - case 66: - goto tr19 + goto tr239 case 134: - goto tr256 - case 67: - goto tr8 - case 68: - goto tr8 + goto tr238 + case 11: + goto tr18 + case 12: + goto tr18 case 135: - goto tr256 + goto tr239 + case 13: + goto tr22 + case 14: + goto tr22 + case 15: + goto tr22 + case 16: + goto tr22 + case 17: + goto tr22 + case 18: + goto tr22 + case 19: + goto tr22 + case 20: + goto tr22 + case 21: + goto tr22 + case 22: + goto tr22 + case 23: + goto tr22 + case 24: + goto tr22 + case 25: + goto tr22 + case 26: + goto tr22 + case 27: + goto tr22 + case 28: + goto tr22 + case 29: + goto tr22 + case 30: + goto tr22 + case 31: + goto tr22 + case 32: + goto tr22 + case 33: + goto tr22 + case 34: + goto tr22 + case 35: + goto tr22 + case 36: + goto tr22 + case 37: + goto tr22 + case 38: + goto tr22 + case 39: + goto tr22 + case 40: + goto tr22 + case 41: + goto tr22 + case 42: + goto tr22 + case 43: + goto tr22 + case 44: + goto tr22 + case 45: + goto tr22 + case 46: + goto tr22 + case 47: + goto tr22 + case 48: + goto tr22 + case 49: + goto tr22 + case 50: + goto tr22 + case 51: + goto tr22 + case 52: + goto tr22 + case 53: + goto tr22 + case 54: + goto tr22 + case 55: + goto tr22 + case 56: + goto tr22 + case 57: + goto tr22 + case 58: + goto tr22 + case 59: + goto tr22 + case 60: + goto tr22 + case 61: + goto tr22 + case 62: + goto tr22 + case 63: + goto tr22 + case 64: + goto tr22 + case 65: + goto tr22 + case 66: + goto tr22 case 136: - goto tr229 - case 69: - goto tr19 - case 70: - goto tr19 - case 71: - goto tr19 + goto tr239 case 137: - goto tr259 + goto tr256 case 138: - goto tr259 - case 72: - goto tr91 + goto tr239 case 139: - goto tr262 - case 73: - goto tr91 + goto tr239 case 140: - goto tr263 + goto tr239 + case 67: + goto tr22 case 141: - goto tr229 - case 142: - goto tr229 - case 74: - goto tr19 - case 75: - goto tr19 - case 76: - goto tr19 - case 77: - goto tr19 - case 143: goto tr265 + case 68: + goto tr11 + case 69: + goto tr11 + case 142: + goto tr265 + case 70: + goto tr87 + case 143: + goto tr239 + case 71: + goto tr22 + case 72: + goto tr22 + case 73: + goto tr22 case 144: - goto tr267 - case 78: - goto tr103 + goto tr269 case 145: - goto tr229 + goto tr265 case 146: - goto tr271 - case 79: - goto tr8 - case 80: - goto tr8 - case 81: - goto tr8 - case 82: - goto tr8 + goto tr269 + case 74: + goto tr96 + case 75: + goto tr11 case 147: - goto tr273 - case 83: - goto tr8 - case 84: - goto tr8 - case 85: - goto tr8 - case 86: - goto tr8 - case 148: goto tr274 + case 76: + goto tr11 + case 148: + goto tr275 case 149: - goto tr229 + goto tr239 case 150: - goto tr278 + goto tr239 + case 77: + goto tr22 + case 78: + goto tr22 + case 79: + goto tr22 + case 80: + goto tr22 case 151: - goto tr229 + goto tr277 case 152: - goto tr282 + goto tr279 + case 81: + goto tr109 case 153: - goto tr229 + goto tr239 case 154: - goto tr286 + goto tr283 + case 82: + goto tr11 + case 83: + goto tr11 + case 84: + goto tr11 + case 85: + goto tr11 case 155: - goto tr288 + goto tr285 + case 86: + goto tr11 case 87: - goto tr119 - case 156: - goto tr289 - case 157: - goto tr8 - case 158: - goto tr289 - case 159: - goto tr289 - case 160: - goto tr289 - case 161: - goto tr289 - case 162: - goto tr289 - case 163: - goto tr289 - case 164: - goto tr289 - case 165: - goto tr289 - case 166: - goto tr289 - case 167: - goto tr289 - case 168: - goto tr289 + goto tr11 case 88: - goto tr121 + goto tr11 case 89: - goto tr121 - case 169: - goto tr289 - case 170: - goto tr289 - case 171: - goto tr289 - case 172: - goto tr289 - case 173: - goto tr289 - case 174: - goto tr289 - case 175: - goto tr289 - case 176: - goto tr289 - case 177: - goto tr289 - case 178: - goto tr289 - case 179: - goto tr289 - case 180: - goto tr289 - case 181: - goto tr289 - case 182: - goto tr289 - case 183: - goto tr289 - case 184: - goto tr289 - case 185: - goto tr289 - case 186: - goto tr289 - case 187: - goto tr289 - case 188: - goto tr289 - case 189: - goto tr289 - case 190: - goto tr289 - case 191: - goto tr289 - case 192: - goto tr289 - case 193: - goto tr289 - case 194: - goto tr289 - case 195: - goto tr289 - case 196: - goto tr289 - case 197: - goto tr289 - case 198: - goto tr289 - case 199: - goto tr289 - case 200: - goto tr289 - case 201: - goto tr289 - case 202: - goto tr289 - case 203: - goto tr289 - case 204: - goto tr289 - case 205: - goto tr289 - case 206: - goto tr289 - case 207: - goto tr289 - case 208: - goto tr289 - case 209: - goto tr289 - case 210: - goto tr289 - case 211: - goto tr289 - case 212: - goto tr289 - case 213: - goto tr289 - case 214: - goto tr289 - case 215: - goto tr289 - case 216: - goto tr289 - case 217: - goto tr369 - case 218: - goto tr289 - case 219: - goto tr289 - case 220: - goto tr289 - case 221: - goto tr289 - case 222: - goto tr289 - case 223: - goto tr289 - case 224: - goto tr289 - case 225: - goto tr289 - case 226: - goto tr289 - case 227: - goto tr289 - case 228: - goto tr289 - case 229: - goto tr289 - case 230: - goto tr289 - case 231: - goto tr289 - case 232: - goto tr389 - case 233: - goto tr289 - case 234: - goto tr289 - case 235: - goto tr289 - case 236: - goto tr289 - case 237: - goto tr289 - case 238: - goto tr289 - case 239: - goto tr289 - case 240: - goto tr289 - case 241: - goto tr289 - case 242: - goto tr289 - case 243: - goto tr289 - case 244: - goto tr289 - case 245: - goto tr289 - case 246: - goto tr289 - case 247: - goto tr289 - case 248: - goto tr289 - case 249: - goto tr289 - case 250: - goto tr289 - case 251: - goto tr289 - case 252: - goto tr289 - case 253: - goto tr289 - case 254: - goto tr289 - case 255: - goto tr289 - case 256: - goto tr289 - case 257: - goto tr289 - case 258: - goto tr417 - case 259: - goto tr289 - case 260: - goto tr289 - case 261: - goto tr421 - case 262: - goto tr289 - case 263: - goto tr289 - case 264: - goto tr289 - case 265: - goto tr289 - case 266: - goto tr289 - case 267: - goto tr289 - case 268: - goto tr289 - case 269: - goto tr289 - case 270: - goto tr289 - case 271: - goto tr289 - case 272: - goto tr289 - case 273: - goto tr289 - case 274: - goto tr289 - case 275: - goto tr289 - case 276: - goto tr289 - case 277: - goto tr289 - case 278: - goto tr289 - case 279: - goto tr289 - case 280: - goto tr289 - case 281: - goto tr289 - case 282: - goto tr289 - case 283: - goto tr289 - case 284: - goto tr289 - case 285: - goto tr289 - case 286: - goto tr453 - case 287: - goto tr289 - case 288: - goto tr289 - case 289: - goto tr289 - case 290: - goto tr289 - case 291: - goto tr289 - case 292: - goto tr289 - case 293: - goto tr289 - case 294: - goto tr289 - case 295: - goto tr289 - case 296: - goto tr289 - case 297: - goto tr289 - case 298: - goto tr289 - case 299: - goto tr289 - case 300: - goto tr289 - case 301: - goto tr289 - case 302: - goto tr289 - case 303: - goto tr289 - case 304: - goto tr289 - case 305: - goto tr289 - case 306: - goto tr289 - case 307: - goto tr289 - case 308: - goto tr289 - case 309: - goto tr289 - case 310: - goto tr289 - case 311: - goto tr289 - case 312: - goto tr289 - case 313: - goto tr289 - case 314: - goto tr289 - case 315: - goto tr289 - case 316: - goto tr289 - case 317: - goto tr289 - case 318: - goto tr289 - case 319: - goto tr289 - case 320: - goto tr289 - case 321: - goto tr289 - case 322: - goto tr289 - case 323: - goto tr289 - case 324: - goto tr289 - case 325: - goto tr289 - case 326: - goto tr289 - case 327: - goto tr289 - case 328: - goto tr289 - case 329: - goto tr289 - case 330: - goto tr289 - case 331: - goto tr289 - case 332: - goto tr289 - case 333: - goto tr289 - case 334: - goto tr289 - case 335: - goto tr289 - case 336: - goto tr289 - case 337: - goto tr289 - case 338: - goto tr289 - case 339: - goto tr289 - case 340: - goto tr289 - case 341: - goto tr289 - case 342: - goto tr289 - case 343: - goto tr289 - case 344: - goto tr289 - case 345: - goto tr289 - case 346: - goto tr289 - case 347: - goto tr521 - case 348: - goto tr289 - case 349: - goto tr289 - case 350: - goto tr289 - case 351: - goto tr289 - case 352: - goto tr289 - case 353: - goto tr289 - case 354: - goto tr289 - case 355: - goto tr289 - case 356: - goto tr289 - case 357: - goto tr289 - case 358: - goto tr289 - case 359: - goto tr289 - case 360: - goto tr289 - case 361: - goto tr289 - case 362: - goto tr289 - case 363: - goto tr289 - case 364: - goto tr289 - case 365: - goto tr289 - case 366: - goto tr289 - case 367: - goto tr289 - case 368: - goto tr289 - case 369: - goto tr289 - case 370: - goto tr289 - case 371: - goto tr289 - case 372: - goto tr289 - case 373: - goto tr289 - case 374: - goto tr289 - case 375: - goto tr289 - case 376: - goto tr289 - case 377: - goto tr289 - case 378: - goto tr289 - case 379: - goto tr289 - case 380: - goto tr289 - case 381: - goto tr289 - case 382: - goto tr289 - case 383: - goto tr289 - case 384: - goto tr289 - case 385: - goto tr289 - case 386: - goto tr289 - case 387: - goto tr289 - case 388: - goto tr567 + goto tr11 + case 156: + goto tr286 + case 157: + goto tr239 + case 158: + goto tr290 + case 159: + goto tr239 + case 160: + goto tr294 + case 161: + goto tr239 + case 162: + goto tr298 + case 163: + goto tr300 case 90: - goto tr123 + goto tr125 + case 164: + goto tr301 + case 165: + goto tr303 + case 166: + goto tr11 + case 167: + goto tr303 + case 168: + goto tr303 + case 169: + goto tr303 + case 170: + goto tr303 + case 171: + goto tr303 + case 172: + goto tr303 + case 173: + goto tr303 + case 174: + goto tr303 + case 175: + goto tr303 + case 176: + goto tr303 + case 177: + goto tr303 case 91: - goto tr123 + goto tr127 case 92: - goto tr123 - case 93: - goto tr123 - case 94: - goto tr123 - case 95: - goto tr123 + goto tr127 + case 178: + goto tr303 + case 179: + goto tr303 + case 180: + goto tr303 + case 181: + goto tr303 + case 182: + goto tr303 + case 183: + goto tr303 + case 184: + goto tr303 + case 185: + goto tr303 + case 186: + goto tr303 + case 187: + goto tr303 + case 188: + goto tr303 + case 189: + goto tr303 + case 190: + goto tr303 + case 191: + goto tr303 + case 192: + goto tr303 + case 193: + goto tr303 + case 194: + goto tr303 + case 195: + goto tr303 + case 196: + goto tr303 + case 197: + goto tr303 + case 198: + goto tr303 + case 199: + goto tr303 + case 200: + goto tr303 + case 201: + goto tr303 + case 202: + goto tr303 + case 203: + goto tr303 + case 204: + goto tr303 + case 205: + goto tr303 + case 206: + goto tr303 + case 207: + goto tr303 + case 208: + goto tr303 + case 209: + goto tr303 + case 210: + goto tr303 + case 211: + goto tr303 + case 212: + goto tr303 + case 213: + goto tr303 + case 214: + goto tr303 + case 215: + goto tr303 + case 216: + goto tr303 + case 217: + goto tr303 + case 218: + goto tr303 + case 219: + goto tr303 + case 220: + goto tr303 + case 221: + goto tr303 + case 222: + goto tr303 + case 223: + goto tr303 + case 224: + goto tr303 + case 225: + goto tr303 + case 226: + goto tr383 + case 227: + goto tr303 + case 228: + goto tr303 + case 229: + goto tr303 + case 230: + goto tr303 + case 231: + goto tr303 + case 232: + goto tr303 + case 233: + goto tr303 + case 234: + goto tr303 + case 235: + goto tr303 + case 236: + goto tr303 + case 237: + goto tr303 + case 238: + goto tr303 + case 239: + goto tr303 + case 240: + goto tr303 + case 241: + goto tr403 + case 242: + goto tr303 + case 243: + goto tr303 + case 244: + goto tr303 + case 245: + goto tr303 + case 246: + goto tr303 + case 247: + goto tr303 + case 248: + goto tr303 + case 249: + goto tr303 + case 250: + goto tr303 + case 251: + goto tr303 + case 252: + goto tr303 + case 253: + goto tr303 + case 254: + goto tr303 + case 255: + goto tr303 + case 256: + goto tr303 + case 257: + goto tr303 + case 258: + goto tr303 + case 259: + goto tr303 + case 260: + goto tr303 + case 261: + goto tr303 + case 262: + goto tr303 + case 263: + goto tr303 + case 264: + goto tr303 + case 265: + goto tr303 + case 266: + goto tr303 + case 267: + goto tr432 + case 268: + goto tr303 + case 269: + goto tr303 + case 270: + goto tr436 + case 271: + goto tr303 + case 272: + goto tr303 + case 273: + goto tr303 + case 274: + goto tr303 + case 275: + goto tr303 + case 276: + goto tr303 + case 277: + goto tr303 + case 278: + goto tr303 + case 279: + goto tr303 + case 280: + goto tr303 + case 281: + goto tr303 + case 282: + goto tr303 + case 283: + goto tr303 + case 284: + goto tr303 + case 285: + goto tr303 + case 286: + goto tr303 + case 287: + goto tr303 + case 288: + goto tr303 + case 289: + goto tr303 + case 290: + goto tr303 + case 291: + goto tr303 + case 292: + goto tr303 + case 293: + goto tr303 + case 294: + goto tr303 + case 295: + goto tr468 + case 296: + goto tr303 + case 297: + goto tr303 + case 298: + goto tr303 + case 299: + goto tr303 + case 300: + goto tr303 + case 301: + goto tr303 + case 302: + goto tr303 + case 303: + goto tr303 + case 304: + goto tr303 + case 305: + goto tr303 + case 306: + goto tr303 + case 307: + goto tr303 + case 308: + goto tr303 + case 309: + goto tr303 + case 310: + goto tr303 + case 311: + goto tr303 + case 312: + goto tr303 + case 313: + goto tr303 + case 314: + goto tr303 + case 315: + goto tr303 + case 316: + goto tr303 + case 317: + goto tr303 + case 318: + goto tr303 + case 319: + goto tr303 + case 320: + goto tr303 + case 321: + goto tr303 + case 322: + goto tr303 + case 323: + goto tr303 + case 324: + goto tr303 + case 325: + goto tr303 + case 326: + goto tr303 + case 327: + goto tr303 + case 328: + goto tr303 + case 329: + goto tr303 + case 330: + goto tr303 + case 331: + goto tr303 + case 332: + goto tr303 + case 333: + goto tr303 + case 334: + goto tr303 + case 335: + goto tr303 + case 336: + goto tr303 + case 337: + goto tr303 + case 338: + goto tr303 + case 339: + goto tr303 + case 340: + goto tr303 + case 341: + goto tr303 + case 342: + goto tr303 + case 343: + goto tr303 + case 344: + goto tr303 + case 345: + goto tr303 + case 346: + goto tr303 + case 347: + goto tr303 + case 348: + goto tr303 + case 349: + goto tr303 + case 350: + goto tr303 + case 351: + goto tr303 + case 352: + goto tr303 + case 353: + goto tr303 + case 354: + goto tr303 + case 355: + goto tr303 + case 356: + goto tr536 + case 357: + goto tr303 + case 358: + goto tr303 + case 359: + goto tr303 + case 360: + goto tr303 + case 361: + goto tr303 + case 362: + goto tr303 + case 363: + goto tr303 + case 364: + goto tr303 + case 365: + goto tr303 + case 366: + goto tr303 + case 367: + goto tr303 + case 368: + goto tr303 + case 369: + goto tr303 + case 370: + goto tr303 + case 371: + goto tr303 + case 372: + goto tr303 + case 373: + goto tr303 + case 374: + goto tr303 + case 375: + goto tr303 + case 376: + goto tr303 + case 377: + goto tr303 + case 378: + goto tr303 + case 379: + goto tr303 + case 380: + goto tr303 + case 381: + goto tr303 + case 382: + goto tr303 + case 383: + goto tr303 + case 384: + goto tr303 + case 385: + goto tr303 + case 386: + goto tr303 + case 387: + goto tr303 + case 388: + goto tr303 case 389: - goto tr289 + goto tr303 case 390: - goto tr289 + goto tr303 case 391: - goto tr289 + goto tr303 case 392: - goto tr229 + goto tr303 case 393: - goto tr289 + goto tr303 case 394: - goto tr289 + goto tr303 case 395: - goto tr289 + goto tr303 case 396: - goto tr289 + goto tr303 case 397: - goto tr289 - case 398: - goto tr289 - case 399: - goto tr289 - case 400: - goto tr289 - case 401: - goto tr289 - case 402: - goto tr289 - case 403: - goto tr289 - case 404: - goto tr289 - case 405: - goto tr289 - case 406: - goto tr289 - case 407: - goto tr289 - case 408: - goto tr289 - case 409: - goto tr289 - case 410: - goto tr289 - case 411: - goto tr289 - case 412: - goto tr289 - case 413: - goto tr289 - case 414: - goto tr289 - case 415: - goto tr289 - case 416: - goto tr289 - case 417: - goto tr289 - case 418: - goto tr289 - case 419: - goto tr289 - case 420: - goto tr289 - case 421: - goto tr289 - case 422: - goto tr289 - case 423: - goto tr289 - case 424: - goto tr289 - case 425: - goto tr289 - case 426: - goto tr289 - case 427: - goto tr289 - case 428: - goto tr289 - case 429: - goto tr289 - case 430: - goto tr289 - case 431: - goto tr289 - case 432: - goto tr289 - case 433: - goto tr289 - case 434: - goto tr289 - case 435: - goto tr289 - case 436: - goto tr289 - case 437: - goto tr289 - case 438: - goto tr289 - case 439: - goto tr289 - case 440: - goto tr289 - case 441: - goto tr289 - case 442: - goto tr289 - case 443: - goto tr289 - case 444: - goto tr289 - case 445: - goto tr289 - case 446: - goto tr289 - case 447: - goto tr289 - case 448: - goto tr289 - case 449: - goto tr289 - case 450: - goto tr289 - case 451: - goto tr289 - case 452: - goto tr289 - case 453: - goto tr289 - case 454: - goto tr289 - case 455: - goto tr289 - case 456: - goto tr289 - case 457: - goto tr289 - case 458: - goto tr229 - case 460: - goto tr653 - case 461: - goto tr655 + goto tr582 + case 93: + goto tr129 + case 94: + goto tr129 + case 95: + goto tr129 case 96: - goto tr135 + goto tr129 + case 97: + goto tr129 + case 98: + goto tr129 + case 398: + goto tr303 + case 399: + goto tr303 + case 400: + goto tr303 + case 401: + goto tr239 + case 402: + goto tr303 + case 403: + goto tr303 + case 404: + goto tr303 + case 405: + goto tr303 + case 406: + goto tr303 + case 407: + goto tr303 + case 408: + goto tr303 + case 409: + goto tr303 + case 410: + goto tr303 + case 411: + goto tr303 + case 412: + goto tr303 + case 413: + goto tr303 + case 414: + goto tr303 + case 415: + goto tr303 + case 416: + goto tr303 + case 417: + goto tr303 + case 418: + goto tr303 + case 419: + goto tr303 + case 420: + goto tr303 + case 421: + goto tr303 + case 422: + goto tr303 + case 423: + goto tr303 + case 424: + goto tr303 + case 425: + goto tr303 + case 426: + goto tr303 + case 427: + goto tr303 + case 428: + goto tr303 + case 429: + goto tr303 + case 430: + goto tr303 + case 431: + goto tr303 + case 432: + goto tr303 + case 433: + goto tr303 + case 434: + goto tr303 + case 435: + goto tr303 + case 436: + goto tr303 + case 437: + goto tr303 + case 438: + goto tr303 + case 439: + goto tr303 + case 440: + goto tr303 + case 441: + goto tr303 + case 442: + goto tr303 + case 443: + goto tr303 + case 444: + goto tr303 + case 445: + goto tr303 + case 446: + goto tr303 + case 447: + goto tr303 + case 448: + goto tr303 + case 449: + goto tr303 + case 450: + goto tr303 + case 451: + goto tr303 + case 452: + goto tr303 + case 453: + goto tr303 + case 454: + goto tr303 + case 455: + goto tr303 + case 456: + goto tr303 + case 457: + goto tr303 + case 458: + goto tr303 + case 459: + goto tr303 + case 460: + goto tr303 + case 461: + goto tr303 case 462: - goto tr659 + goto tr303 case 463: - goto tr659 + goto tr303 case 464: - goto tr661 + goto tr303 + case 465: + goto tr303 case 466: - goto tr664 + goto tr303 case 467: - goto tr665 + goto tr239 case 469: - goto tr674 + goto tr668 case 470: - goto tr676 + goto tr670 + case 99: + goto tr141 case 471: - goto tr677 + goto tr674 case 472: goto tr674 case 473: - goto tr681 + goto tr676 case 475: - goto tr691 + goto tr679 case 476: - goto tr693 - case 477: - goto tr694 + goto tr680 case 478: - goto tr691 + goto tr689 case 479: - goto tr698 + goto tr691 + case 480: + goto tr692 case 481: - goto tr708 + goto tr689 case 482: - goto tr710 - case 483: - goto tr711 + goto tr696 case 484: - goto tr708 + goto tr706 case 485: - goto tr715 + goto tr708 + case 486: + goto tr709 case 487: - goto tr718 - case 489: - goto tr724 + goto tr706 + case 488: + goto tr713 case 490: - goto tr726 + goto tr723 case 491: - goto tr724 - case 100: - goto tr141 + goto tr725 case 492: - goto tr728 + goto tr726 + case 493: + goto tr723 case 494: - goto tr739 - case 495: - goto tr740 + goto tr730 case 496: - goto tr741 - case 497: - goto tr743 + goto tr733 case 498: - goto tr744 + goto tr739 case 499: - goto tr744 - case 101: - goto tr143 + goto tr741 case 500: - goto tr744 - case 102: - goto tr143 - case 501: - goto tr744 - case 502: - goto tr747 - case 504: - goto tr750 + goto tr739 case 103: - goto tr146 - case 506: + goto tr147 + case 501: + goto tr743 + case 503: + goto tr753 + case 504: + goto tr754 + case 505: goto tr755 - case 507: + case 506: goto tr757 + case 507: + goto tr758 + case 508: + goto tr758 case 104: goto tr149 - case 508: - goto tr761 - case 510: - goto tr766 - case 511: - goto tr768 case 105: - goto tr151 - case 512: - goto tr772 - case 514: - goto tr777 - case 515: - goto tr779 + goto tr149 + case 509: + goto tr758 case 106: + goto tr149 + case 510: + goto tr758 + case 511: + goto tr762 + case 513: + goto tr765 + case 107: goto tr153 + case 515: + goto tr770 case 516: - goto tr783 - case 518: - goto tr786 + goto tr772 + case 108: + goto tr156 + case 517: + goto tr776 case 519: + goto tr781 + case 520: + goto tr783 + case 109: + goto tr158 + case 521: goto tr787 + case 523: + goto tr792 + case 524: + goto tr794 + case 110: + goto tr160 + case 525: + goto tr798 + case 527: + goto tr801 + case 528: + goto tr802 } } @@ -22454,7 +22861,7 @@ func (lex *Lexer) Lex(lval Lval) int { } } -//line scanner/scanner.rl:492 +//line scanner/scanner.rl:508 token.FreeFloating = lex.FreeFloating token.Value = string(lex.data[lex.ts:lex.te]) diff --git a/scanner/scanner.rl b/scanner/scanner.rl index d2b79f7..a331c8a 100644 --- a/scanner/scanner.rl +++ b/scanner/scanner.rl @@ -2,6 +2,8 @@ package scanner import ( "fmt" + "strconv" + "strings" "github.com/z7zmey/php-parser/freefloating" ) @@ -66,10 +68,10 @@ func (lex *Lexer) Lex(lval Lval) int { whitespace = [\t\v\f ]; whitespace_line = [\t\v\f ] | newline; - lnum = [0-9]+; - dnum = ( [0-9]* "." [0-9]+ ) | ( [0-9]+ "." [0-9]* ); - hnum = '0x' [0-9a-fA-F]+; - bnum = '0b' [01]+; + lnum = [0-9]+('_'[0-9]+)*; + dnum = (lnum?"." lnum)|(lnum"."lnum?); + hnum = '0x'[0-9a-fA-F]+('_'[0-9a-fA-F]+)*; + bnum = '0b'[01]+('_'[01]+)*; exponent_dnum = (lnum | dnum) ('e'|'E') ('+'|'-')? lnum; varname_first = [a-zA-Z_] | (0x0080..0x00FF); @@ -132,6 +134,16 @@ func (lex *Lexer) Lex(lval Lval) int { ); main := |* + "#!" any* :>> newline => { + lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + }; + any => { + fnext html; + lex.ungetCnt(1) + }; + *|; + + html := |* any_line+ -- ' { lex.ungetStr("<") lex.setTokenPosition(token) @@ -157,41 +169,43 @@ func (lex *Lexer) Lex(lval Lval) int { php := |* whitespace_line* => {lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te)}; - '?>' newline? => {lex.setTokenPosition(token); tok = TokenID(int(';')); fnext main; fbreak;}; - ';' whitespace_line* '?>' newline? => {lex.setTokenPosition(token); tok = TokenID(int(';')); fnext main; fbreak;}; + '?>' newline? => {lex.setTokenPosition(token); tok = TokenID(int(';')); fnext html; fbreak;}; + ';' whitespace_line* '?>' newline? => {lex.setTokenPosition(token); tok = TokenID(int(';')); fnext html; fbreak;}; (dnum | exponent_dnum) => {lex.setTokenPosition(token); tok = T_DNUMBER; fbreak;}; bnum => { - firstNum := 2 - for i := lex.ts + 2; i < lex.te; i++ { - if lex.data[i] == '0' { - firstNum++ - } - } + s := strings.Replace(string(lex.data[lex.ts+2:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, 2, 0) - if lex.te - lex.ts - firstNum < 64 { + if err == nil { lex.setTokenPosition(token); tok = T_LNUMBER; fbreak; - } + } + lex.setTokenPosition(token); tok = T_DNUMBER; fbreak; }; lnum => { - if lex.te - lex.ts < 20 { - lex.setTokenPosition(token); tok = T_LNUMBER; fbreak; + base := 10 + if lex.data[lex.ts] == '0' { + base = 8 } + + s := strings.Replace(string(lex.data[lex.ts:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, base, 0) + + if err == nil { + lex.setTokenPosition(token); tok = T_LNUMBER; fbreak; + } + lex.setTokenPosition(token); tok = T_DNUMBER; fbreak; }; hnum => { - firstNum := lex.ts + 2 - for i := lex.ts + 2; i < lex.te; i++ { - if lex.data[i] == '0' { - firstNum++ - } - } + s := strings.Replace(string(lex.data[lex.ts+2:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, 16, 0) - length := lex.te - firstNum - if length < 16 || (length == 16 && lex.data[firstNum] <= '7') { + if err == nil { lex.setTokenPosition(token); tok = T_LNUMBER; fbreak; } + lex.setTokenPosition(token); tok = T_DNUMBER; fbreak; }; @@ -227,6 +241,7 @@ func (lex *Lexer) Lex(lval Lval) int { 'for'i => {lex.setTokenPosition(token); tok = T_FOR; fbreak;}; 'foreach'i => {lex.setTokenPosition(token); tok = T_FOREACH; fbreak;}; 'function'i | 'cfunction'i => {lex.setTokenPosition(token); tok = T_FUNCTION; fbreak;}; + 'fn'i => {lex.setTokenPosition(token); tok = T_FN; fbreak;}; 'global'i => {lex.setTokenPosition(token); tok = T_GLOBAL; fbreak;}; 'goto'i => {lex.setTokenPosition(token); tok = T_GOTO; fbreak;}; 'if'i => {lex.setTokenPosition(token); tok = T_IF; fbreak;}; @@ -301,6 +316,7 @@ func (lex *Lexer) Lex(lval Lval) int { '<<' => {lex.setTokenPosition(token); tok = T_SL; fbreak;}; '>>' => {lex.setTokenPosition(token); tok = T_SR; fbreak;}; '??' => {lex.setTokenPosition(token); tok = T_COALESCE; fbreak;}; + '??=' => {lex.setTokenPosition(token); tok = T_COALESCE_EQUAL; fbreak;}; '(' whitespace* 'array'i whitespace* ')' => {lex.setTokenPosition(token); tok = T_ARRAY_CAST; fbreak;}; '(' whitespace* ('bool'i|'boolean'i) whitespace* ')' => {lex.setTokenPosition(token); tok = T_BOOL_CAST; fbreak;}; @@ -394,7 +410,7 @@ func (lex *Lexer) Lex(lval Lval) int { lex.setTokenPosition(token); tok = T_ENCAPSED_AND_WHITESPACE; - if lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { + if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { fnext heredoc_end; } fbreak; diff --git a/scanner/scanner_test.go b/scanner/scanner_test.go index 70d3021..7d49a4a 100644 --- a/scanner/scanner_test.go +++ b/scanner/scanner_test.go @@ -21,20 +21,6 @@ func TestTokens(t *testing.T) { test second.major { + return 1, nil + } + + if first.minor < second.minor { + return -1, nil + } + + if first.minor > second.minor { + return 1, nil + } + + return 0, nil +} + +func parse(v string) (version, error) { + parts := strings.Split(v, ".") + if len(parts) != 2 { + return version{}, errors.New("version must contain major and minor parts") + } + + major, err := strconv.Atoi(parts[0]) + if err != nil { + return version{}, err + } + + minor, err := strconv.Atoi(parts[1]) + if err != nil { + return version{}, err + } + + return version{major, minor}, nil +} diff --git a/visitor/dumper_test.go b/visitor/dumper_test.go index c84f65e..cdfc78d 100644 --- a/visitor/dumper_test.go +++ b/visitor/dumper_test.go @@ -20,7 +20,7 @@ func ExampleDumper() { } }` - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.WithFreeFloating() php7parser.Parse() nodes := php7parser.GetRootNode() diff --git a/visitor/go_dumper_test.go b/visitor/go_dumper_test.go index b7a65a1..2970615 100644 --- a/visitor/go_dumper_test.go +++ b/visitor/go_dumper_test.go @@ -20,7 +20,7 @@ func ExampleGoDumper() { } }` - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.WithFreeFloating() php7parser.Parse() nodes := php7parser.GetRootNode() diff --git a/visitor/json_dumper_test.go b/visitor/json_dumper_test.go index 84ab203..b803fc3 100644 --- a/visitor/json_dumper_test.go +++ b/visitor/json_dumper_test.go @@ -22,7 +22,7 @@ func ExampleJsonDumper() { } }` - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.WithFreeFloating() php7parser.Parse() nodes := php7parser.GetRootNode() diff --git a/visitor/pretty_json_dumper_test.go b/visitor/pretty_json_dumper_test.go index dddad6f..307581d 100644 --- a/visitor/pretty_json_dumper_test.go +++ b/visitor/pretty_json_dumper_test.go @@ -26,7 +26,7 @@ func ExamplePrettyJsonDumper() { } ` - php7parser := php7.NewParser([]byte(src)) + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.WithFreeFloating() php7parser.Parse() nodes := php7parser.GetRootNode()