diff --git a/.gitignore b/.gitignore index 9e6bbd0..0d7dcd0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .vscode +.idea php-parser **/*.test diff --git a/Makefile b/Makefile index 460cda5..9540674 100644 --- a/Makefile +++ b/Makefile @@ -25,10 +25,13 @@ bench: compile: ./php5/php5.go ./php7/php7.go ./scanner/scanner.go fmt sed -i '' -e 's/yyErrorVerbose = false/yyErrorVerbose = true/g' ./php7/php7.go sed -i '' -e 's/yyErrorVerbose = false/yyErrorVerbose = true/g' ./php5/php5.go + sed -i '' -e 's/\/\/line/\/\/ line/g' ./php5/php5.go + sed -i '' -e 's/\/\/line/\/\/ line/g' ./php7/php7.go + sed -i '' -e 's/\/\/line/\/\/ line/g' ./scanner/scanner.go rm -f y.output -./scanner/scanner.go: ./scanner/scanner.l - golex -o $@ $< +./scanner/scanner.go: ./scanner/scanner.rl + ragel -Z -G2 -o $@ $< ./php5/php5.go: ./php5/php5.y goyacc -o $@ $< diff --git a/README.md b/README.md index ca063af..6ce8d53 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ PHP Parser written in Go [![Maintainability](https://api.codeclimate.com/v1/badges/950783b2e739db26e0ed/maintainability)](https://codeclimate.com/github/z7zmey/php-parser/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/950783b2e739db26e0ed/test_coverage)](https://codeclimate.com/github/z7zmey/php-parser/test_coverage) -This project uses [goyacc](https://godoc.org/golang.org/x/tools/cmd/goyacc) and [golex](https://github.com/cznic/golex) libraries to parse PHP sources into [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree). It can be used to write static analysis, refactoring, metrics, code style formatting tools. +This project uses [goyacc](https://godoc.org/golang.org/x/tools/cmd/goyacc) and [ragel](https://www.colm.net/open-source/ragel/) tools to create PHP parser. It parses source code into [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree). It can be used to write static analysis, refactoring, metrics, code style formatting tools. #### Try it online: [demo](https://php-parser.com) @@ -37,7 +37,6 @@ Usage example package main import ( - "bytes" "fmt" "os" @@ -46,9 +45,9 @@ import ( ) func main() { - src := bytes.NewBufferString(` ... | flag | type | description | |-------|------|----------------------------------------------| +| -p | bool | print filepath | | -d |string| dump format: [custom, go, json, pretty-json] | | -r | bool | resolve names | | -ff | bool | parse and show free floating strings | diff --git a/freefloating/position_string.go b/freefloating/position_string.go index d10a397..2428f22 100644 --- a/freefloating/position_string.go +++ b/freefloating/position_string.go @@ -4,9 +4,91 @@ package freefloating import "strconv" -const _Position_name = "StartEndSlashColonSemiColonAltEndDollarAmpersandNamePrefixKeyVarUseTypeReturnTypeOptionalTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchBreakForeachDeclareLabelFinallyListDefaultIfElseIfElseVariadicFunctionAliasAsEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListUseDeclarationListOpenParenthesisTokenCloseParenthesisToken" +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[Start-0] + _ = x[End-1] + _ = x[Slash-2] + _ = x[Colon-3] + _ = x[SemiColon-4] + _ = x[AltEnd-5] + _ = x[Dollar-6] + _ = x[Ampersand-7] + _ = x[Name-8] + _ = x[Prefix-9] + _ = x[Key-10] + _ = x[Var-11] + _ = x[UseType-12] + _ = x[ReturnType-13] + _ = x[OptionalType-14] + _ = x[CaseSeparator-15] + _ = x[LexicalVars-16] + _ = x[Params-17] + _ = x[Ref-18] + _ = x[Cast-19] + _ = x[Expr-20] + _ = x[InitExpr-21] + _ = x[CondExpr-22] + _ = x[IncExpr-23] + _ = x[True-24] + _ = x[Cond-25] + _ = x[HaltCompiller-26] + _ = x[Namespace-27] + _ = x[Static-28] + _ = x[Class-29] + _ = x[Use-30] + _ = x[While-31] + _ = x[For-32] + _ = x[Switch-33] + _ = x[Break-34] + _ = x[Foreach-35] + _ = x[Declare-36] + _ = x[Label-37] + _ = x[Finally-38] + _ = x[List-39] + _ = x[Default-40] + _ = x[If-41] + _ = x[ElseIf-42] + _ = x[Else-43] + _ = x[Variadic-44] + _ = x[Function-45] + _ = x[DoubleArrow-46] + _ = x[Alias-47] + _ = x[As-48] + _ = x[Equal-49] + _ = x[Exit-50] + _ = x[Array-51] + _ = x[Isset-52] + _ = x[Empty-53] + _ = x[Eval-54] + _ = x[Echo-55] + _ = x[Try-56] + _ = x[Catch-57] + _ = x[Unset-58] + _ = x[Stmts-59] + _ = x[VarList-60] + _ = x[ConstList-61] + _ = x[NameList-62] + _ = x[ParamList-63] + _ = x[ModifierList-64] + _ = x[ArrayPairList-65] + _ = x[CaseListStart-66] + _ = x[CaseListEnd-67] + _ = x[ArgumentList-68] + _ = x[PropertyList-69] + _ = x[ParameterList-70] + _ = x[AdaptationList-71] + _ = x[LexicalVarList-72] + _ = x[UseDeclarationList-73] + _ = x[OpenParenthesisToken-74] + _ = x[CloseParenthesisToken-75] +} -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} +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, 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/go.mod b/go.mod new file mode 100644 index 0000000..6b90c8b --- /dev/null +++ b/go.mod @@ -0,0 +1,12 @@ +module github.com/z7zmey/php-parser + +go 1.13 + +require ( + github.com/google/go-cmp v0.4.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pkg/profile v1.4.0 + github.com/yookoala/realpath v1.0.0 + golang.org/x/tools v0.0.0-20200308013534-11ec41452d41 // indirect + gotest.tools v2.2.0+incompatible +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..6f9717a --- /dev/null +++ b/go.sum @@ -0,0 +1,28 @@ +github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.4.0 h1:uCmaf4vVbWAOZz36k1hrQD7ijGRzLwaME8Am/7a4jZI= +github.com/pkg/profile v1.4.0/go.mod h1:NWz/XGvpEW1FyYQ7fCx4dqYBLlfTcE+A9FLAkNKqjFE= +github.com/yookoala/realpath v1.0.0 h1:7OA9pj4FZd+oZDsyvXWQvjn5oBdcHRTV44PpdMSuImQ= +github.com/yookoala/realpath v1.0.0/go.mod h1:gJJMA9wuX7AcqLy1+ffPatSCySA1FQ2S8Ya9AIoYBpE= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200308013534-11ec41452d41 h1:9Di9iYgOt9ThCipBxChBVhgNipDoE5mxO84rQV7D0FE= +golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= diff --git a/main.go b/main.go index a0a2dc1..a1ad92c 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,6 @@ package main import ( - "bufio" "bytes" "flag" "fmt" @@ -15,35 +14,45 @@ 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 var showResolvedNs *bool var printBack *bool +var printPath *bool type file struct { path string content []byte } +type result struct { + path string + parser parser.Parser +} + 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") + printPath = flag.Bool("p", false, "print filepath") 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() + if len(flag.Args()) == 0 { + flag.Usage() + return + } + switch profiler { case "cpu": defer profile.Start(profile.ProfilePath("."), profile.NoShutdownHook).Stop() @@ -53,10 +62,10 @@ func main() { defer profile.Start(profile.TraceProfile, profile.ProfilePath("."), profile.NoShutdownHook).Stop() } - numCpu := runtime.NumCPU() + numCpu := runtime.GOMAXPROCS(0) fileCh := make(chan *file, numCpu) - resultCh := make(chan parser.Parser, numCpu) + resultCh := make(chan result, numCpu) // run 4 concurrent parserWorkers for i := 0; i < numCpu; i++ { @@ -93,21 +102,16 @@ func processPath(pathList []string, fileCh chan<- *file) { } } -func parserWorker(fileCh <-chan *file, result chan<- parser.Parser) { - var parserWorker parser.Parser - +func parserWorker(fileCh <-chan *file, r chan<- result) { for { f, ok := <-fileCh if !ok { return } - src := bytes.NewReader(f.content) - - if *usePhp5 { - parserWorker = php5.NewParser(src, f.path) - } else { - parserWorker = php7.NewParser(src, f.path) + parserWorker, err := parser.NewParser(f.content, phpVersion) + if err != nil { + panic(err.Error()) } if *withFreeFloating { @@ -116,43 +120,42 @@ func parserWorker(fileCh <-chan *file, result chan<- parser.Parser) { parserWorker.Parse() - result <- parserWorker + r <- result{path: f.path, parser: parserWorker} } } -func printerWorker(result <-chan parser.Parser) { +func printerWorker(r <-chan result) { var counter int - w := bufio.NewWriter(os.Stdout) - for { - parserWorker, ok := <-result + res, ok := <-r if !ok { - w.Flush() return } counter++ - fmt.Fprintf(w, "==> [%d] %s\n", counter, parserWorker.GetPath()) + if *printPath { + fmt.Fprintf(os.Stdout, "==> [%d] %s\n", counter, res.path) + } - for _, e := range parserWorker.GetErrors() { - fmt.Fprintln(w, e) + for _, e := range res.parser.GetErrors() { + fmt.Fprintf(os.Stdout, "==> %s\n", e) } if *printBack { o := bytes.NewBuffer([]byte{}) p := printer.NewPrinter(o) - p.Print(parserWorker.GetRootNode()) + p.Print(res.parser.GetRootNode()) - err := ioutil.WriteFile(parserWorker.GetPath(), o.Bytes(), 0644) + err := ioutil.WriteFile(res.path, o.Bytes(), 0644) checkErr(err) } var nsResolver *visitor.NamespaceResolver if *showResolvedNs { nsResolver = visitor.NewNamespaceResolver() - parserWorker.GetRootNode().Walk(nsResolver) + res.parser.GetRootNode().Walk(nsResolver) } switch dumpType { @@ -162,22 +165,22 @@ func printerWorker(result <-chan parser.Parser) { Indent: "| ", NsResolver: nsResolver, } - parserWorker.GetRootNode().Walk(dumper) + res.parser.GetRootNode().Walk(dumper) case "json": dumper := &visitor.JsonDumper{ Writer: os.Stdout, NsResolver: nsResolver, } - parserWorker.GetRootNode().Walk(dumper) + res.parser.GetRootNode().Walk(dumper) case "pretty_json": dumper := &visitor.PrettyJsonDumper{ Writer: os.Stdout, NsResolver: nsResolver, } - parserWorker.GetRootNode().Walk(dumper) + res.parser.GetRootNode().Walk(dumper) case "go": dumper := &visitor.GoDumper{Writer: os.Stdout} - parserWorker.GetRootNode().Walk(dumper) + res.parser.GetRootNode().Walk(dumper) } wg.Done() 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 19b0ca7..3a57089 100644 --- a/node/expr/assign/t_assign_op_test.go +++ b/node/expr/assign/t_assign_op_test.go @@ -1,7 +1,6 @@ package assign_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -24,7 +23,7 @@ func TestReference(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -32,28 +31,28 @@ func TestReference(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.Reference{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -63,14 +62,14 @@ func TestReference(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -81,12 +80,12 @@ func TestReference(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -99,7 +98,7 @@ func TestReferenceNew(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Stmts: []node.Node{ @@ -107,28 +106,28 @@ func TestReferenceNew(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Expr: &assign.Reference{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -138,14 +137,14 @@ func TestReferenceNew(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 16, }, Class: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Parts: []node.Node{ @@ -153,7 +152,7 @@ func TestReferenceNew(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "Foo", @@ -166,12 +165,12 @@ func TestReferenceNew(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -184,7 +183,7 @@ func TestReferenceArgs(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 21, }, Stmts: []node.Node{ @@ -192,28 +191,28 @@ func TestReferenceArgs(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 21, }, Expr: &assign.Reference{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 20, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -223,14 +222,14 @@ func TestReferenceArgs(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 20, }, Class: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Parts: []node.Node{ @@ -238,7 +237,7 @@ func TestReferenceArgs(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "Foo", @@ -249,7 +248,7 @@ func TestReferenceArgs(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 20, }, Arguments: []node.Node{ @@ -257,7 +256,7 @@ func TestReferenceArgs(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 19, }, Variadic: false, @@ -266,14 +265,14 @@ func TestReferenceArgs(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 19, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 19, }, Value: "b", @@ -288,12 +287,12 @@ func TestReferenceArgs(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -306,7 +305,7 @@ func TestAssign(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Stmts: []node.Node{ @@ -314,28 +313,28 @@ func TestAssign(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 10, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -345,14 +344,14 @@ func TestAssign(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "b", @@ -363,12 +362,12 @@ func TestAssign(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -381,7 +380,7 @@ func TestBitwiseAnd(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -389,28 +388,28 @@ func TestBitwiseAnd(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.BitwiseAnd{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -420,14 +419,14 @@ func TestBitwiseAnd(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -438,12 +437,12 @@ func TestBitwiseAnd(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -456,7 +455,7 @@ func TestBitwiseOr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -464,28 +463,28 @@ func TestBitwiseOr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.BitwiseOr{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -495,14 +494,14 @@ func TestBitwiseOr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -513,12 +512,12 @@ func TestBitwiseOr(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -531,7 +530,7 @@ func TestBitwiseXor(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -539,28 +538,28 @@ func TestBitwiseXor(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.BitwiseXor{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -570,14 +569,14 @@ func TestBitwiseXor(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -588,12 +587,12 @@ func TestBitwiseXor(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -606,7 +605,7 @@ func TestConcat(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -614,28 +613,28 @@ func TestConcat(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.Concat{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -645,14 +644,14 @@ func TestConcat(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -663,12 +662,12 @@ func TestConcat(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -681,7 +680,7 @@ func TestDiv(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -689,28 +688,28 @@ func TestDiv(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.Div{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -720,14 +719,14 @@ func TestDiv(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -738,12 +737,12 @@ func TestDiv(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -756,7 +755,7 @@ func TestMinus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -764,28 +763,28 @@ func TestMinus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.Minus{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -795,14 +794,14 @@ func TestMinus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -813,12 +812,12 @@ func TestMinus(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -831,7 +830,7 @@ func TestMod(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -839,28 +838,28 @@ func TestMod(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.Mod{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -870,14 +869,14 @@ func TestMod(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -888,12 +887,12 @@ func TestMod(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -906,7 +905,7 @@ func TestMul(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -914,28 +913,28 @@ func TestMul(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.Mul{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -945,14 +944,14 @@ func TestMul(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -963,12 +962,12 @@ func TestMul(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -981,7 +980,7 @@ func TestPlus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -989,28 +988,28 @@ func TestPlus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &assign.Plus{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -1020,14 +1019,14 @@ func TestPlus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "b", @@ -1038,12 +1037,12 @@ func TestPlus(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1056,7 +1055,7 @@ func TestPow(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -1064,28 +1063,28 @@ func TestPow(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &assign.Pow{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -1095,14 +1094,14 @@ func TestPow(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, Value: "b", @@ -1113,12 +1112,12 @@ func TestPow(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1131,7 +1130,7 @@ func TestShiftLeft(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -1139,28 +1138,28 @@ func TestShiftLeft(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &assign.ShiftLeft{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -1170,14 +1169,14 @@ func TestShiftLeft(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, Value: "b", @@ -1188,12 +1187,12 @@ func TestShiftLeft(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1206,7 +1205,7 @@ func TestShiftRight(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -1214,28 +1213,28 @@ func TestShiftRight(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &assign.ShiftRight{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -1245,14 +1244,14 @@ func TestShiftRight(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, Value: "b", @@ -1263,13 +1262,83 @@ func TestShiftRight(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 56968f7..a5688b0 100644 --- a/node/expr/t_bitwise_not_test.go +++ b/node/expr/t_bitwise_not_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestBitwiseNot(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestBitwiseNot(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Expr: &expr.BitwiseNot{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, Value: "a", @@ -62,12 +61,12 @@ func TestBitwiseNot(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 1064828..a695608 100644 --- a/node/expr/t_boolean_not_test.go +++ b/node/expr/t_boolean_not_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestBooleanNot(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestBooleanNot(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Expr: &expr.BooleanNot{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, Value: "a", @@ -62,12 +61,12 @@ func TestBooleanNot(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 6f035aa..6d7d1a3 100644 --- a/node/expr/t_class_const_fetch_test.go +++ b/node/expr/t_class_const_fetch_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -24,7 +23,7 @@ func TestClassConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -32,21 +31,21 @@ func TestClassConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Class: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Parts: []node.Node{ @@ -54,7 +53,7 @@ func TestClassConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Value: "Foo", @@ -65,7 +64,7 @@ func TestClassConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 11, }, Value: "Bar", @@ -75,12 +74,12 @@ func TestClassConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -93,7 +92,7 @@ func TestStaticClassConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Stmts: []node.Node{ @@ -101,21 +100,21 @@ func TestStaticClassConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Class: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Value: "static", @@ -124,7 +123,7 @@ func TestStaticClassConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 14, }, Value: "bar", @@ -134,12 +133,12 @@ func TestStaticClassConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 3804b9b..afeaece 100644 --- a/node/expr/t_clone_test.go +++ b/node/expr/t_clone_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestCloneBrackets(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestCloneBrackets(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &expr.Clone{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -62,12 +61,12 @@ func TestCloneBrackets(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -80,7 +79,7 @@ func TestClone(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -88,28 +87,28 @@ func TestClone(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &expr.Clone{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -120,12 +119,12 @@ func TestClone(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 5c3bfc8..899d306 100644 --- a/node/expr/t_closure_test.go +++ b/node/expr/t_closure_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -24,7 +23,7 @@ func TestClosure(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Stmts: []node.Node{ @@ -32,14 +31,14 @@ func TestClosure(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, ReturnsRef: false, @@ -51,12 +50,12 @@ func TestClosure(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -69,7 +68,7 @@ func TestClosureUse(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 37, }, Stmts: []node.Node{ @@ -77,14 +76,14 @@ func TestClosureUse(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 37, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 36, }, ReturnsRef: false, @@ -95,7 +94,7 @@ func TestClosureUse(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, Variadic: false, @@ -104,14 +103,14 @@ func TestClosureUse(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, Value: "a", @@ -122,7 +121,7 @@ func TestClosureUse(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, ByRef: false, @@ -131,14 +130,14 @@ func TestClosureUse(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, Value: "b", @@ -150,7 +149,7 @@ func TestClosureUse(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 21, + StartPos: 20, EndPos: 33, }, Uses: []node.Node{ @@ -158,14 +157,14 @@ func TestClosureUse(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 27, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 27, }, Value: "c", @@ -175,21 +174,21 @@ func TestClosureUse(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 30, + StartPos: 29, EndPos: 32, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 31, + StartPos: 30, EndPos: 32, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 31, + StartPos: 30, EndPos: 32, }, Value: "d", @@ -204,12 +203,12 @@ func TestClosureUse(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -222,7 +221,7 @@ func TestClosureUse2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 37, }, Stmts: []node.Node{ @@ -230,14 +229,14 @@ func TestClosureUse2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 37, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 36, }, ReturnsRef: false, @@ -248,7 +247,7 @@ func TestClosureUse2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, ByRef: false, @@ -257,14 +256,14 @@ func TestClosureUse2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, Value: "a", @@ -275,7 +274,7 @@ func TestClosureUse2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, ByRef: false, @@ -284,14 +283,14 @@ func TestClosureUse2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, Value: "b", @@ -303,7 +302,7 @@ func TestClosureUse2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 21, + StartPos: 20, EndPos: 33, }, Uses: []node.Node{ @@ -311,21 +310,21 @@ func TestClosureUse2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 28, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 27, + StartPos: 26, EndPos: 28, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 27, + StartPos: 26, EndPos: 28, }, Value: "c", @@ -336,14 +335,14 @@ func TestClosureUse2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 31, + StartPos: 30, EndPos: 32, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 31, + StartPos: 30, EndPos: 32, }, Value: "d", @@ -357,12 +356,12 @@ func TestClosureUse2(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -375,7 +374,7 @@ func TestClosureReturnType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Stmts: []node.Node{ @@ -383,14 +382,14 @@ func TestClosureReturnType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, PhpDocComment: "", @@ -400,7 +399,7 @@ func TestClosureReturnType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 16, + StartPos: 15, EndPos: 19, }, Parts: []node.Node{ @@ -408,7 +407,7 @@ func TestClosureReturnType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 16, + StartPos: 15, EndPos: 19, }, Value: "void", @@ -421,7 +420,7 @@ func TestClosureReturnType(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + 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 85ccf30..5da2214 100644 --- a/node/expr/t_const_fetch_test.go +++ b/node/expr/t_const_fetch_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -24,7 +23,7 @@ func TestConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Stmts: []node.Node{ @@ -32,21 +31,21 @@ func TestConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Parts: []node.Node{ @@ -54,7 +53,7 @@ func TestConstFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Value: "foo", @@ -66,12 +65,12 @@ func TestConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -84,7 +83,7 @@ func TestConstFetchRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Stmts: []node.Node{ @@ -92,21 +91,21 @@ func TestConstFetchRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Constant: &name.Relative{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Parts: []node.Node{ @@ -114,7 +113,7 @@ func TestConstFetchRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "foo", @@ -126,12 +125,12 @@ func TestConstFetchRelative(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -144,7 +143,7 @@ func TestConstFetchFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Stmts: []node.Node{ @@ -152,21 +151,21 @@ func TestConstFetchFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Constant: &name.FullyQualified{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Parts: []node.Node{ @@ -174,7 +173,7 @@ func TestConstFetchFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 7, }, Value: "foo", @@ -186,12 +185,12 @@ func TestConstFetchFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 0f277b5..3182500 100644 --- a/node/expr/t_empty_test.go +++ b/node/expr/t_empty_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestEmpty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestEmpty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &expr.Empty{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -62,12 +61,12 @@ func TestEmpty(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 4e956e9..477a0e8 100644 --- a/node/expr/t_error_supress_test.go +++ b/node/expr/t_error_supress_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestErrorSuppress(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestErrorSuppress(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Expr: &expr.ErrorSuppress{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, Value: "a", @@ -62,12 +61,12 @@ func TestErrorSuppress(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 ba21ff9..bed1877 100644 --- a/node/expr/t_eval_test.go +++ b/node/expr/t_eval_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestEval(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestEval(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &expr.Eval{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "a", @@ -62,12 +61,12 @@ func TestEval(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 80596f2..f65658e 100644 --- a/node/expr/t_exit_test.go +++ b/node/expr/t_exit_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestExit(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Stmts: []node.Node{ @@ -30,7 +29,7 @@ func TestExit(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Expr: &expr.Exit{ @@ -38,7 +37,7 @@ func TestExit(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, }, @@ -46,12 +45,12 @@ func TestExit(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -64,7 +63,7 @@ func TestExitEmpty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 10, }, Stmts: []node.Node{ @@ -72,7 +71,7 @@ func TestExitEmpty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 10, }, Expr: &expr.Exit{ @@ -80,7 +79,7 @@ func TestExitEmpty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, }, @@ -88,12 +87,12 @@ func TestExitEmpty(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -106,7 +105,7 @@ func TestExitExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -114,7 +113,7 @@ func TestExitExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &expr.Exit{ @@ -122,21 +121,21 @@ func TestExitExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "a", @@ -147,12 +146,12 @@ func TestExitExpr(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -165,7 +164,7 @@ func TestDie(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Stmts: []node.Node{ @@ -173,7 +172,7 @@ func TestDie(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Expr: &expr.Exit{ @@ -181,7 +180,7 @@ func TestDie(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, }, @@ -189,12 +188,12 @@ func TestDie(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -207,7 +206,7 @@ func TestDieEmpty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Stmts: []node.Node{ @@ -215,7 +214,7 @@ func TestDieEmpty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Expr: &expr.Exit{ @@ -223,7 +222,7 @@ func TestDieEmpty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, }, @@ -231,12 +230,12 @@ func TestDieEmpty(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -249,7 +248,7 @@ func TestDieExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Stmts: []node.Node{ @@ -257,7 +256,7 @@ func TestDieExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &expr.Exit{ @@ -265,21 +264,21 @@ func TestDieExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 10, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 9, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 9, }, Value: "a", @@ -290,12 +289,12 @@ func TestDieExpr(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 c6e0fea..d59bd44 100644 --- a/node/expr/t_function_call_test.go +++ b/node/expr/t_function_call_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -27,7 +26,7 @@ func TestFunctionCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Stmts: []node.Node{ @@ -35,21 +34,21 @@ func TestFunctionCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Function: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Parts: []node.Node{ @@ -57,7 +56,7 @@ func TestFunctionCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Value: "foo", @@ -68,7 +67,7 @@ func TestFunctionCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 7, + StartPos: 6, EndPos: 8, }, }, @@ -77,12 +76,12 @@ func TestFunctionCall(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -95,7 +94,7 @@ func TestFunctionCallRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Stmts: []node.Node{ @@ -103,21 +102,21 @@ func TestFunctionCallRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Function: &name.Relative{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Parts: []node.Node{ @@ -125,7 +124,7 @@ func TestFunctionCallRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "foo", @@ -136,7 +135,7 @@ func TestFunctionCallRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, }, @@ -145,12 +144,12 @@ func TestFunctionCallRelative(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -163,7 +162,7 @@ func TestFunctionFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -171,21 +170,21 @@ func TestFunctionFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Function: &name.FullyQualified{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Parts: []node.Node{ @@ -193,7 +192,7 @@ func TestFunctionFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 7, }, Value: "foo", @@ -204,7 +203,7 @@ func TestFunctionFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, Arguments: []node.Node{ @@ -212,7 +211,7 @@ func TestFunctionFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Variadic: false, @@ -221,7 +220,7 @@ func TestFunctionFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Items: []node.Node{}, @@ -234,12 +233,12 @@ func TestFunctionFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -252,7 +251,7 @@ func TestFunctionCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Stmts: []node.Node{ @@ -260,28 +259,28 @@ func TestFunctionCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Function: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Value: "foo", @@ -291,7 +290,7 @@ func TestFunctionCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 17, }, Arguments: []node.Node{ @@ -299,7 +298,7 @@ func TestFunctionCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 16, }, Variadic: false, @@ -308,21 +307,21 @@ func TestFunctionCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 16, }, Value: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 16, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 16, }, Value: "a", @@ -337,12 +336,12 @@ func TestFunctionCallVar(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -355,7 +354,7 @@ func TestFunctionCallExprArg(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Stmts: []node.Node{ @@ -363,21 +362,21 @@ func TestFunctionCallExprArg(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Function: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Parts: []node.Node{ @@ -385,7 +384,7 @@ func TestFunctionCallExprArg(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Value: "ceil", @@ -396,7 +395,7 @@ func TestFunctionCallExprArg(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 15, }, Arguments: []node.Node{ @@ -404,7 +403,7 @@ func TestFunctionCallExprArg(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 14, }, Variadic: false, @@ -413,21 +412,21 @@ func TestFunctionCallExprArg(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 14, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 12, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 12, }, Value: "foo", @@ -437,7 +436,7 @@ func TestFunctionCallExprArg(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 14, }, Value: "3", @@ -451,12 +450,12 @@ func TestFunctionCallExprArg(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 b574f20..abf2f55 100644 --- a/node/expr/t_inc_dec_test.go +++ b/node/expr/t_inc_dec_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestPostDec(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestPostDec(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Expr: &expr.PostDec{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -62,12 +61,12 @@ func TestPostDec(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -80,7 +79,7 @@ func TestPostInc(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Stmts: []node.Node{ @@ -88,28 +87,28 @@ func TestPostInc(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Expr: &expr.PostInc{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -120,12 +119,12 @@ func TestPostInc(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -138,7 +137,7 @@ func TestPreDec(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Stmts: []node.Node{ @@ -146,28 +145,28 @@ func TestPreDec(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Expr: &expr.PreDec{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 6, + StartPos: 5, EndPos: 7, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 6, + StartPos: 5, EndPos: 7, }, Value: "a", @@ -178,12 +177,12 @@ func TestPreDec(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -196,7 +195,7 @@ func TestPreInc(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Stmts: []node.Node{ @@ -204,28 +203,28 @@ func TestPreInc(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Expr: &expr.PreInc{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 6, + StartPos: 5, EndPos: 7, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 6, + StartPos: 5, EndPos: 7, }, Value: "a", @@ -236,12 +235,12 @@ func TestPreInc(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 7f5d674..e622cd7 100644 --- a/node/expr/t_include_test.go +++ b/node/expr/t_include_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestInclude(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestInclude(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Expr: &expr.Include{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 13, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 13, }, Value: "a", @@ -62,12 +61,12 @@ func TestInclude(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -80,7 +79,7 @@ func TestIncludeOnce(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Stmts: []node.Node{ @@ -88,28 +87,28 @@ func TestIncludeOnce(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Expr: &expr.IncludeOnce{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, Value: "a", @@ -120,12 +119,12 @@ func TestIncludeOnce(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -138,7 +137,7 @@ func TestRequire(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Stmts: []node.Node{ @@ -146,28 +145,28 @@ func TestRequire(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Expr: &expr.Require{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 13, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 13, }, Value: "a", @@ -178,12 +177,12 @@ func TestRequire(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -196,7 +195,7 @@ func TestRequireOnce(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Stmts: []node.Node{ @@ -204,28 +203,28 @@ func TestRequireOnce(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Expr: &expr.RequireOnce{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, Value: "a", @@ -236,12 +235,12 @@ func TestRequireOnce(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 c6ede50..8123dfd 100644 --- a/node/expr/t_instance_of_test.go +++ b/node/expr/t_instance_of_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -24,7 +23,7 @@ func TestInstanceOf(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 21, }, Stmts: []node.Node{ @@ -32,28 +31,28 @@ func TestInstanceOf(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 21, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 20, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -63,7 +62,7 @@ func TestInstanceOf(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 20, }, Parts: []node.Node{ @@ -71,7 +70,7 @@ func TestInstanceOf(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 20, }, Value: "Foo", @@ -83,12 +82,12 @@ func TestInstanceOf(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -101,7 +100,7 @@ func TestInstanceOfRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 31, }, Stmts: []node.Node{ @@ -109,28 +108,28 @@ func TestInstanceOfRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 31, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 30, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -140,7 +139,7 @@ func TestInstanceOfRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 30, }, Parts: []node.Node{ @@ -148,7 +147,7 @@ func TestInstanceOfRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 28, + StartPos: 27, EndPos: 30, }, Value: "Foo", @@ -160,12 +159,12 @@ func TestInstanceOfRelative(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -178,7 +177,7 @@ func TestInstanceOfFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, Stmts: []node.Node{ @@ -186,28 +185,28 @@ func TestInstanceOfFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 21, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -217,7 +216,7 @@ func TestInstanceOfFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 21, }, Parts: []node.Node{ @@ -225,7 +224,7 @@ func TestInstanceOfFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 21, }, Value: "Foo", @@ -237,12 +236,12 @@ func TestInstanceOfFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 1643e63..fbbd8e7 100644 --- a/node/expr/t_isset_test.go +++ b/node/expr/t_isset_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestIsset(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -30,14 +29,14 @@ func TestIsset(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &expr.Isset{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Variables: []node.Node{ @@ -45,14 +44,14 @@ func TestIsset(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -64,12 +63,12 @@ func TestIsset(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -82,7 +81,7 @@ func TestIssetVariables(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Stmts: []node.Node{ @@ -90,14 +89,14 @@ func TestIssetVariables(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Expr: &expr.Isset{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Variables: []node.Node{ @@ -105,14 +104,14 @@ func TestIssetVariables(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -122,14 +121,14 @@ func TestIssetVariables(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, Value: "b", @@ -141,12 +140,12 @@ func TestIssetVariables(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 fe4684e..1962253 100644 --- a/node/expr/t_list_test.go +++ b/node/expr/t_list_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestEmptyList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Stmts: []node.Node{ @@ -30,21 +29,21 @@ func TestEmptyList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Items: []node.Node{}, @@ -53,14 +52,14 @@ func TestEmptyList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, Value: "b", @@ -71,12 +70,12 @@ func TestEmptyList(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -89,7 +88,7 @@ func TestList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Stmts: []node.Node{ @@ -97,21 +96,21 @@ func TestList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Items: []node.Node{ @@ -119,21 +118,21 @@ func TestList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "a", @@ -146,14 +145,14 @@ func TestList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 16, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 16, }, Value: "b", @@ -164,12 +163,12 @@ func TestList(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -182,7 +181,7 @@ func TestListArrayIndex(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Stmts: []node.Node{ @@ -190,21 +189,21 @@ func TestListArrayIndex(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Items: []node.Node{ @@ -212,28 +211,28 @@ func TestListArrayIndex(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 12, }, Val: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 12, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "a", @@ -247,14 +246,14 @@ func TestListArrayIndex(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, Value: "b", @@ -265,12 +264,12 @@ func TestListArrayIndex(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -283,7 +282,7 @@ func TestListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Stmts: []node.Node{ @@ -291,21 +290,21 @@ func TestListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Items: []node.Node{ @@ -313,14 +312,14 @@ func TestListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 16, }, Val: &expr.List{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 16, }, Items: []node.Node{ @@ -328,21 +327,21 @@ func TestListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, Value: "a", @@ -358,14 +357,14 @@ func TestListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 21, + StartPos: 20, EndPos: 22, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 21, + StartPos: 20, EndPos: 22, }, Value: "b", @@ -376,12 +375,12 @@ func TestListList(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -394,7 +393,7 @@ func TestListEmptyItem(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Stmts: []node.Node{ @@ -402,21 +401,21 @@ func TestListEmptyItem(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Items: []node.Node{ @@ -425,21 +424,21 @@ func TestListEmptyItem(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, Value: "a", @@ -452,14 +451,14 @@ func TestListEmptyItem(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, Value: "b", @@ -470,12 +469,12 @@ func TestListEmptyItem(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -488,7 +487,7 @@ func TestListEmptyItems(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Stmts: []node.Node{ @@ -496,21 +495,21 @@ func TestListEmptyItems(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Items: []node.Node{ @@ -520,21 +519,21 @@ func TestListEmptyItems(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, Value: "a", @@ -548,14 +547,14 @@ func TestListEmptyItems(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 21, + StartPos: 20, EndPos: 22, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 21, + StartPos: 20, EndPos: 22, }, Value: "b", @@ -566,12 +565,12 @@ func TestListEmptyItems(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 0d2e7d9..d5a0f36 100644 --- a/node/expr/t_method_call_test.go +++ b/node/expr/t_method_call_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestMethodCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestMethodCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &expr.MethodCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -61,7 +60,7 @@ func TestMethodCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 10, }, Value: "foo", @@ -70,7 +69,7 @@ func TestMethodCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, }, @@ -79,12 +78,12 @@ func TestMethodCall(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 3b2f0ab..d0670f8 100644 --- a/node/expr/t_new_test.go +++ b/node/expr/t_new_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -24,7 +23,7 @@ func TestNew(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Stmts: []node.Node{ @@ -32,21 +31,21 @@ func TestNew(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 10, }, Class: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 10, }, Parts: []node.Node{ @@ -54,7 +53,7 @@ func TestNew(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 10, }, Value: "Foo", @@ -66,12 +65,12 @@ func TestNew(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -84,7 +83,7 @@ func TestNewRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Stmts: []node.Node{ @@ -92,21 +91,21 @@ func TestNewRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, Class: &name.Relative{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 20, }, Parts: []node.Node{ @@ -114,7 +113,7 @@ func TestNewRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 20, }, Value: "Foo", @@ -125,7 +124,7 @@ func TestNewRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 21, + StartPos: 20, EndPos: 22, }, }, @@ -134,12 +133,12 @@ func TestNewRelative(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -152,7 +151,7 @@ func TestNewFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Stmts: []node.Node{ @@ -160,21 +159,21 @@ func TestNewFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, Parts: []node.Node{ @@ -182,7 +181,7 @@ func TestNewFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 11, }, Value: "Foo", @@ -193,7 +192,7 @@ func TestNewFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 13, }, }, @@ -202,12 +201,12 @@ func TestNewFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -220,7 +219,7 @@ func TestNewAnonymous(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 28, }, Stmts: []node.Node{ @@ -228,21 +227,21 @@ func TestNewAnonymous(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 28, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 27, }, Class: &stmt.Class{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 27, }, PhpDocComment: "", @@ -250,7 +249,7 @@ func TestNewAnonymous(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 24, }, Arguments: []node.Node{ @@ -258,7 +257,7 @@ func TestNewAnonymous(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 16, }, Variadic: false, @@ -267,14 +266,14 @@ func TestNewAnonymous(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 16, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 16, }, Value: "a", @@ -285,7 +284,7 @@ func TestNewAnonymous(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 23, }, IsReference: false, @@ -294,14 +293,14 @@ func TestNewAnonymous(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, + StartPos: 21, EndPos: 23, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, + StartPos: 21, EndPos: 23, }, Value: "b", @@ -317,7 +316,7 @@ func TestNewAnonymous(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + 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 f2c54da..c9b96e2 100644 --- a/node/expr/t_print_test.go +++ b/node/expr/t_print_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestPrint(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestPrint(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &expr.Print{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -62,12 +61,12 @@ func TestPrint(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 fc9efa7..604242a 100644 --- a/node/expr/t_property_fetch_test.go +++ b/node/expr/t_property_fetch_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 10, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -61,7 +60,7 @@ func TestPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 10, }, Value: "foo", @@ -71,12 +70,12 @@ func TestPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 93be36e..8a9c38e 100644 --- a/node/expr/t_reference_test.go +++ b/node/expr/t_reference_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -23,7 +22,7 @@ func TestForeachWithRef(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 31, }, Stmts: []node.Node{ @@ -31,21 +30,21 @@ func TestForeachWithRef(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 31, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, Value: "a", @@ -55,14 +54,14 @@ func TestForeachWithRef(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, Value: "k", @@ -72,21 +71,21 @@ func TestForeachWithRef(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 25, + StartPos: 24, EndPos: 27, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 27, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 27, }, Value: "v", @@ -97,7 +96,7 @@ func TestForeachWithRef(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 30, + StartPos: 29, EndPos: 31, }, Stmts: []node.Node{}, @@ -106,12 +105,12 @@ func TestForeachWithRef(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 1a31728..4932334 100644 --- a/node/expr/t_shell_exec_test.go +++ b/node/expr/t_shell_exec_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -24,7 +23,7 @@ func TestShellExec(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -32,14 +31,14 @@ func TestShellExec(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &expr.ShellExec{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Parts: []node.Node{ @@ -47,7 +46,7 @@ func TestShellExec(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 8, }, Value: "cmd ", @@ -56,14 +55,14 @@ func TestShellExec(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "a", @@ -75,12 +74,12 @@ func TestShellExec(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 2561e63..24bfb6f 100644 --- a/node/expr/t_short_array_test.go +++ b/node/expr/t_short_array_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestShortArray(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Stmts: []node.Node{ @@ -30,14 +29,14 @@ func TestShortArray(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Items: []node.Node{}, @@ -46,12 +45,12 @@ func TestShortArray(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -64,7 +63,7 @@ func TestShortArrayItem(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Stmts: []node.Node{ @@ -72,14 +71,14 @@ func TestShortArrayItem(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Items: []node.Node{ @@ -87,14 +86,14 @@ func TestShortArrayItem(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 5, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 5, }, Value: "1", @@ -106,12 +105,12 @@ func TestShortArrayItem(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -124,7 +123,7 @@ func TestShortArrayItems(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Stmts: []node.Node{ @@ -132,14 +131,14 @@ func TestShortArrayItems(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Items: []node.Node{ @@ -147,14 +146,14 @@ func TestShortArrayItems(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 8, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 5, }, Value: "1", @@ -163,7 +162,7 @@ func TestShortArrayItems(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 8, }, Value: "1", @@ -173,28 +172,28 @@ func TestShortArrayItems(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 13, }, Val: &expr.Reference{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 13, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 13, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 13, }, Value: "b", @@ -209,12 +208,12 @@ func TestShortArrayItems(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 4a83933..76f0bbe 100644 --- a/node/expr/t_short_list_test.go +++ b/node/expr/t_short_list_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -21,7 +20,7 @@ func TestShortList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -29,21 +28,21 @@ func TestShortList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Variable: &expr.ShortList{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Items: []node.Node{ @@ -51,21 +50,21 @@ func TestShortList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, Value: "a", @@ -78,14 +77,14 @@ func TestShortList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, Value: "b", @@ -96,7 +95,7 @@ func TestShortList(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -109,7 +108,7 @@ func TestShortListArrayIndex(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Stmts: []node.Node{ @@ -117,21 +116,21 @@ func TestShortListArrayIndex(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Variable: &expr.ShortList{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Items: []node.Node{ @@ -139,28 +138,28 @@ func TestShortListArrayIndex(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 8, }, Val: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 8, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, Value: "a", @@ -174,14 +173,14 @@ func TestShortListArrayIndex(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, Value: "b", @@ -192,7 +191,7 @@ func TestShortListArrayIndex(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -205,7 +204,7 @@ func TestShortListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Stmts: []node.Node{ @@ -213,21 +212,21 @@ func TestShortListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Variable: &expr.ShortList{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Items: []node.Node{ @@ -235,14 +234,14 @@ func TestShortListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 12, }, Val: &expr.List{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 12, }, Items: []node.Node{ @@ -250,21 +249,21 @@ func TestShortListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -280,14 +279,14 @@ func TestShortListList(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, Value: "b", @@ -298,7 +297,7 @@ func TestShortListList(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + 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 8ae9395..d2e6baf 100644 --- a/node/expr/t_static_call_test.go +++ b/node/expr/t_static_call_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -24,7 +23,7 @@ func TestStaticCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Stmts: []node.Node{ @@ -32,21 +31,21 @@ func TestStaticCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Class: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Parts: []node.Node{ @@ -54,7 +53,7 @@ func TestStaticCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Value: "Foo", @@ -65,7 +64,7 @@ func TestStaticCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 11, }, Value: "bar", @@ -74,7 +73,7 @@ func TestStaticCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 13, }, }, @@ -83,12 +82,12 @@ func TestStaticCall(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -101,7 +100,7 @@ func TestStaticCallRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 24, }, Stmts: []node.Node{ @@ -109,21 +108,21 @@ func TestStaticCallRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 24, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Class: &name.Relative{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Parts: []node.Node{ @@ -131,7 +130,7 @@ func TestStaticCallRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "Foo", @@ -142,7 +141,7 @@ func TestStaticCallRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 21, }, Value: "bar", @@ -151,7 +150,7 @@ func TestStaticCallRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, + StartPos: 21, EndPos: 23, }, }, @@ -160,12 +159,12 @@ func TestStaticCallRelative(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -178,7 +177,7 @@ func TestStaticCallFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Stmts: []node.Node{ @@ -186,21 +185,21 @@ func TestStaticCallFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Parts: []node.Node{ @@ -208,7 +207,7 @@ func TestStaticCallFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 7, }, Value: "Foo", @@ -219,7 +218,7 @@ func TestStaticCallFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 12, }, Value: "bar", @@ -228,7 +227,7 @@ func TestStaticCallFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, }, @@ -237,12 +236,12 @@ func TestStaticCallFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -255,7 +254,7 @@ func TestStaticCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Stmts: []node.Node{ @@ -263,21 +262,21 @@ func TestStaticCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Class: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Parts: []node.Node{ @@ -285,7 +284,7 @@ func TestStaticCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Value: "Foo", @@ -296,14 +295,14 @@ func TestStaticCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 12, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 12, }, Value: "bar", @@ -313,7 +312,7 @@ func TestStaticCallVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 13, + StartPos: 12, EndPos: 14, }, }, @@ -322,12 +321,12 @@ func TestStaticCallVar(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -340,7 +339,7 @@ func TestStaticCallVarVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Stmts: []node.Node{ @@ -348,28 +347,28 @@ func TestStaticCallVarVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Value: "foo", @@ -379,14 +378,14 @@ func TestStaticCallVarVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, Value: "bar", @@ -396,7 +395,7 @@ func TestStaticCallVarVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, }, @@ -405,12 +404,12 @@ func TestStaticCallVarVar(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 8a89e84..dfa6828 100644 --- a/node/expr/t_static_property_fetch_test.go +++ b/node/expr/t_static_property_fetch_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -23,7 +22,7 @@ func TestStaticPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -31,21 +30,21 @@ func TestStaticPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Class: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Parts: []node.Node{ @@ -53,7 +52,7 @@ func TestStaticPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Value: "Foo", @@ -64,14 +63,14 @@ func TestStaticPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 12, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 12, }, Value: "bar", @@ -82,12 +81,12 @@ func TestStaticPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -100,7 +99,7 @@ func TestStaticPropertyFetchRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Stmts: []node.Node{ @@ -108,21 +107,21 @@ func TestStaticPropertyFetchRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 23, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, Class: &name.Relative{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Parts: []node.Node{ @@ -130,7 +129,7 @@ func TestStaticPropertyFetchRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "Foo", @@ -141,14 +140,14 @@ func TestStaticPropertyFetchRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 22, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 22, }, Value: "bar", @@ -159,12 +158,12 @@ func TestStaticPropertyFetchRelative(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -177,7 +176,7 @@ func TestStaticPropertyFetchFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Stmts: []node.Node{ @@ -185,21 +184,21 @@ func TestStaticPropertyFetchFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Parts: []node.Node{ @@ -207,7 +206,7 @@ func TestStaticPropertyFetchFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 7, }, Value: "Foo", @@ -218,14 +217,14 @@ func TestStaticPropertyFetchFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, Value: "bar", @@ -236,12 +235,12 @@ func TestStaticPropertyFetchFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 8a349f4..2d71cf9 100644 --- a/node/expr/t_ternary_test.go +++ b/node/expr/t_ternary_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestTernary(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestTernary(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -61,14 +60,14 @@ func TestTernary(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "b", @@ -78,14 +77,14 @@ func TestTernary(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, Value: "c", @@ -96,12 +95,12 @@ func TestTernary(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -114,7 +113,7 @@ func TestTernarySimple(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -122,28 +121,28 @@ func TestTernarySimple(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -153,14 +152,14 @@ func TestTernarySimple(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 11, + StartPos: 10, EndPos: 12, }, Value: "c", @@ -171,12 +170,12 @@ func TestTernarySimple(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -189,7 +188,7 @@ func TestTernaryNestedTrue(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 26, }, Stmts: []node.Node{ @@ -197,28 +196,28 @@ func TestTernaryNestedTrue(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 26, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 25, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -228,21 +227,21 @@ func TestTernaryNestedTrue(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 20, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "b", @@ -252,14 +251,14 @@ func TestTernaryNestedTrue(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, Value: "c", @@ -269,14 +268,14 @@ func TestTernaryNestedTrue(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, Value: "d", @@ -287,14 +286,14 @@ func TestTernaryNestedTrue(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 24, + StartPos: 23, EndPos: 25, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 24, + StartPos: 23, EndPos: 25, }, Value: "e", @@ -305,12 +304,12 @@ func TestTernaryNestedTrue(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -323,7 +322,7 @@ func TestTernaryNestedCond(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 26, }, Stmts: []node.Node{ @@ -331,35 +330,35 @@ func TestTernaryNestedCond(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 26, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 25, }, Condition: &expr.Ternary{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -369,14 +368,14 @@ func TestTernaryNestedCond(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "b", @@ -386,14 +385,14 @@ func TestTernaryNestedCond(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, Value: "c", @@ -404,14 +403,14 @@ func TestTernaryNestedCond(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, Value: "d", @@ -421,14 +420,14 @@ func TestTernaryNestedCond(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 24, + StartPos: 23, EndPos: 25, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 24, + StartPos: 23, EndPos: 25, }, Value: "e", @@ -439,12 +438,12 @@ func TestTernaryNestedCond(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 fd6079b..7dbbc7e 100644 --- a/node/expr/t_unary_test.go +++ b/node/expr/t_unary_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestUnaryMinus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Stmts: []node.Node{ @@ -30,28 +29,28 @@ func TestUnaryMinus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Expr: &expr.UnaryMinus{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, Value: "a", @@ -62,12 +61,12 @@ func TestUnaryMinus(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -80,7 +79,7 @@ func TestUnaryPlus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Stmts: []node.Node{ @@ -88,28 +87,28 @@ func TestUnaryPlus(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Expr: &expr.UnaryPlus{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, Value: "a", @@ -120,12 +119,12 @@ func TestUnaryPlus(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 d6ffbbe..315571e 100644 --- a/node/expr/t_variable_test.go +++ b/node/expr/t_variable_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestVariable(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Stmts: []node.Node{ @@ -30,21 +29,21 @@ func TestVariable(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 5, }, Value: "a", @@ -54,12 +53,12 @@ func TestVariable(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -72,7 +71,7 @@ func TestVariableVariable(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Stmts: []node.Node{ @@ -80,28 +79,28 @@ func TestVariableVariable(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 6, }, Value: "a", @@ -112,12 +111,12 @@ func TestVariableVariable(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 d61b2fe..c65b0cb 100644 --- a/node/expr/t_yield_test.go +++ b/node/expr/t_yield_test.go @@ -1,7 +1,6 @@ package expr_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -23,7 +22,7 @@ func TestYield(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Stmts: []node.Node{ @@ -31,14 +30,14 @@ func TestYield(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, }, @@ -46,12 +45,12 @@ func TestYield(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -64,7 +63,7 @@ func TestYieldVal(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Stmts: []node.Node{ @@ -72,28 +71,28 @@ func TestYieldVal(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Value: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -104,12 +103,12 @@ func TestYieldVal(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -122,7 +121,7 @@ func TestYieldKeyVal(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Stmts: []node.Node{ @@ -130,28 +129,28 @@ func TestYieldKeyVal(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Key: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -161,14 +160,14 @@ func TestYieldKeyVal(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 16, + StartPos: 15, EndPos: 17, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 16, + StartPos: 15, EndPos: 17, }, Value: "b", @@ -179,12 +178,12 @@ func TestYieldKeyVal(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -197,7 +196,7 @@ func TestYieldExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Stmts: []node.Node{ @@ -205,21 +204,21 @@ func TestYieldExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 11, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 10, }, Value: &scalar.Lnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 10, }, Value: "1", @@ -229,12 +228,12 @@ func TestYieldExpr(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -247,7 +246,7 @@ func TestYieldKeyExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Stmts: []node.Node{ @@ -255,28 +254,28 @@ func TestYieldKeyExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Key: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -286,7 +285,7 @@ func TestYieldKeyExpr(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 16, + StartPos: 15, EndPos: 16, }, Value: "1", @@ -296,12 +295,12 @@ func TestYieldKeyExpr(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -314,7 +313,7 @@ func TestYieldFrom(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Stmts: []node.Node{ @@ -322,28 +321,28 @@ func TestYieldFrom(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Expr: &expr.YieldFrom{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 16, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 16, }, Value: "a", @@ -354,7 +353,7 @@ func TestYieldFrom(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + 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 9ff3d08..6054fa3 100644 --- a/node/name/t_name_test.go +++ b/node/name/t_name_test.go @@ -1,7 +1,6 @@ package name_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -23,7 +22,7 @@ func TestName(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Stmts: []node.Node{ @@ -31,21 +30,21 @@ func TestName(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 8, }, Function: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Parts: []node.Node{ @@ -53,7 +52,7 @@ func TestName(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 6, }, Value: "foo", @@ -64,7 +63,7 @@ func TestName(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 7, + StartPos: 6, EndPos: 8, }, }, @@ -73,12 +72,12 @@ func TestName(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -91,7 +90,7 @@ func TestFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 10, }, Stmts: []node.Node{ @@ -99,21 +98,21 @@ func TestFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 10, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 9, }, Function: &name.FullyQualified{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 7, }, Parts: []node.Node{ @@ -121,7 +120,7 @@ func TestFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 7, }, Value: "foo", @@ -132,7 +131,7 @@ func TestFullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 9, }, }, @@ -141,12 +140,12 @@ func TestFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -159,7 +158,7 @@ func TestRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Stmts: []node.Node{ @@ -167,21 +166,21 @@ func TestRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 18, }, Function: &name.Relative{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Parts: []node.Node{ @@ -189,7 +188,7 @@ func TestRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "foo", @@ -200,7 +199,7 @@ func TestRelative(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 18, }, }, @@ -209,12 +208,12 @@ func TestRelative(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 2b96e72..bca0025 100644 --- a/node/scalar/t_encapsed_test.go +++ b/node/scalar/t_encapsed_test.go @@ -1,7 +1,6 @@ package scalar_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -23,7 +22,7 @@ func TestSimpleVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Stmts: []node.Node{ @@ -31,14 +30,14 @@ func TestSimpleVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 14, }, Parts: []node.Node{ @@ -46,7 +45,7 @@ func TestSimpleVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 9, }, Value: "test ", @@ -55,14 +54,14 @@ func TestSimpleVar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, Value: "var", @@ -74,12 +73,12 @@ func TestSimpleVar(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -92,7 +91,7 @@ func TestSimpleVarOneChar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -100,14 +99,14 @@ func TestSimpleVarOneChar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Parts: []node.Node{ @@ -115,7 +114,7 @@ func TestSimpleVarOneChar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 9, }, Value: "test ", @@ -124,14 +123,14 @@ func TestSimpleVarOneChar(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -143,12 +142,12 @@ func TestSimpleVarOneChar(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -161,7 +160,7 @@ func TestSimpleVarEndsEcapsed(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Stmts: []node.Node{ @@ -169,14 +168,14 @@ func TestSimpleVarEndsEcapsed(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Parts: []node.Node{ @@ -184,7 +183,7 @@ func TestSimpleVarEndsEcapsed(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 9, }, Value: "test ", @@ -193,14 +192,14 @@ func TestSimpleVarEndsEcapsed(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, Value: "var", @@ -210,7 +209,7 @@ func TestSimpleVarEndsEcapsed(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 15, }, Value: "\\\"", @@ -221,12 +220,12 @@ func TestSimpleVarEndsEcapsed(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -239,7 +238,7 @@ func TestStringVarCurveOpen(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Stmts: []node.Node{ @@ -247,14 +246,14 @@ func TestStringVarCurveOpen(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 13, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 12, }, Parts: []node.Node{ @@ -262,7 +261,7 @@ func TestStringVarCurveOpen(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 5, }, Value: "=", @@ -271,14 +270,14 @@ func TestStringVarCurveOpen(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 6, + StartPos: 5, EndPos: 7, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 6, + StartPos: 5, EndPos: 7, }, Value: "a", @@ -288,14 +287,14 @@ func TestStringVarCurveOpen(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 9, + StartPos: 8, EndPos: 10, }, Value: "b", @@ -307,12 +306,12 @@ func TestStringVarCurveOpen(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -325,7 +324,7 @@ func TestSimpleVarPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, Stmts: []node.Node{ @@ -333,14 +332,14 @@ func TestSimpleVarPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 21, }, Parts: []node.Node{ @@ -348,7 +347,7 @@ func TestSimpleVarPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 9, }, Value: "test ", @@ -357,21 +356,21 @@ func TestSimpleVarPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 18, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 13, }, Value: "foo", @@ -381,7 +380,7 @@ func TestSimpleVarPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 16, + StartPos: 15, EndPos: 18, }, Value: "bar", @@ -391,7 +390,7 @@ func TestSimpleVarPropertyFetch(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, Value: "()", @@ -402,12 +401,12 @@ func TestSimpleVarPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -420,7 +419,7 @@ func TestDollarOpenCurlyBraces(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Stmts: []node.Node{ @@ -428,14 +427,14 @@ func TestDollarOpenCurlyBraces(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 16, }, Parts: []node.Node{ @@ -443,7 +442,7 @@ func TestDollarOpenCurlyBraces(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 9, }, Value: "test ", @@ -452,14 +451,14 @@ func TestDollarOpenCurlyBraces(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 15, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 12, + StartPos: 11, EndPos: 14, }, Value: "foo", @@ -471,12 +470,12 @@ func TestDollarOpenCurlyBraces(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -489,7 +488,7 @@ func TestDollarOpenCurlyBracesDimNumber(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 20, }, Stmts: []node.Node{ @@ -497,14 +496,14 @@ func TestDollarOpenCurlyBracesDimNumber(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 20, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Parts: []node.Node{ @@ -512,7 +511,7 @@ func TestDollarOpenCurlyBracesDimNumber(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 5, + StartPos: 4, EndPos: 9, }, Value: "test ", @@ -521,95 +520,9 @@ func TestDollarOpenCurlyBracesDimNumber(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 18, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 14, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 14, - }, - Value: "foo", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 16, - }, - Value: "0", - }, - }, - }, - }, - }, - }, - } - - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") - php7parser.Parse() - actual := php7parser.GetRootNode() - assert.DeepEqual(t, expected, actual) - - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") - php5parser.Parse() - actual = php5parser.GetRootNode() - assert.DeepEqual(t, expected, actual) -} - -func TestCurlyOpenMethodCall(t *testing.T) { - src := `bar()}";` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 4, - EndPos: 24, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 4, - EndPos: 24, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 4, - EndPos: 23, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 5, - EndPos: 9, - }, - Value: "test ", - }, - &expr.MethodCall{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 11, - EndPos: 21, - }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 1, @@ -627,11 +540,97 @@ func TestCurlyOpenMethodCall(t *testing.T) { Value: "foo", }, }, + Dim: &scalar.Lnumber{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 16, + }, + Value: "0", + }, + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual = php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestCurlyOpenMethodCall(t *testing.T) { + src := `bar()}";` + + expected := &node.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + Stmts: []node.Node{ + &stmt.Expression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + Expr: &scalar.Encapsed{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + Parts: []node.Node{ + &scalar.EncapsedStringPart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 9, + }, + Value: "test ", + }, + &expr.MethodCall{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 21, + }, + Variable: &expr.Variable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 14, + }, + VarName: &node.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 14, + }, + Value: "foo", + }, + }, Method: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 17, + StartPos: 16, EndPos: 19, }, Value: "bar", @@ -640,7 +639,7 @@ func TestCurlyOpenMethodCall(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 20, + StartPos: 19, EndPos: 21, }, }, @@ -651,12 +650,12 @@ func TestCurlyOpenMethodCall(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 45acd48..ae0ce1f 100644 --- a/node/scalar/t_heredoc_test.go +++ b/node/scalar/t_heredoc_test.go @@ -1,7 +1,6 @@ package scalar_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -26,7 +25,7 @@ LBL; Position: &position.Position{ StartLine: 1, EndLine: 3, - StartPos: 7, + StartPos: 3, EndPos: 24, }, Stmts: []node.Node{ @@ -34,23 +33,23 @@ LBL; Position: &position.Position{ StartLine: 1, EndLine: 3, - StartPos: 7, + StartPos: 3, EndPos: 24, }, Expr: &scalar.Heredoc{ Position: &position.Position{ StartLine: 1, EndLine: 3, - StartPos: 7, + StartPos: 3, EndPos: 23, }, - Label: "LBL", + Label: "<<", + Value: "
", }, }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 df770e3..5b018ec 100644 --- a/node/stmt/t_interface_test.go +++ b/node/stmt/t_interface_test.go @@ -1,7 +1,6 @@ package stmt_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestInterface(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Stmts: []node.Node{ @@ -30,7 +29,7 @@ func TestInterface(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, PhpDocComment: "", @@ -38,7 +37,7 @@ func TestInterface(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "Foo", @@ -48,12 +47,12 @@ func TestInterface(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -66,7 +65,7 @@ func TestInterfaceExtend(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 31, }, Stmts: []node.Node{ @@ -74,7 +73,7 @@ func TestInterfaceExtend(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 31, }, PhpDocComment: "", @@ -82,7 +81,7 @@ func TestInterfaceExtend(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "Foo", @@ -91,7 +90,7 @@ func TestInterfaceExtend(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 28, }, InterfaceNames: []node.Node{ @@ -99,7 +98,7 @@ func TestInterfaceExtend(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 28, }, Parts: []node.Node{ @@ -107,7 +106,7 @@ func TestInterfaceExtend(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 28, }, Value: "Bar", @@ -121,12 +120,12 @@ func TestInterfaceExtend(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -139,7 +138,7 @@ func TestInterfaceExtends(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 36, }, Stmts: []node.Node{ @@ -147,7 +146,7 @@ func TestInterfaceExtends(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 36, }, PhpDocComment: "", @@ -155,7 +154,7 @@ func TestInterfaceExtends(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "Foo", @@ -164,7 +163,7 @@ func TestInterfaceExtends(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, + StartPos: 17, EndPos: 33, }, InterfaceNames: []node.Node{ @@ -172,7 +171,7 @@ func TestInterfaceExtends(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 28, }, Parts: []node.Node{ @@ -180,7 +179,7 @@ func TestInterfaceExtends(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 28, }, Value: "Bar", @@ -191,7 +190,7 @@ func TestInterfaceExtends(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 31, + StartPos: 30, EndPos: 33, }, Parts: []node.Node{ @@ -199,7 +198,7 @@ func TestInterfaceExtends(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 31, + StartPos: 30, EndPos: 33, }, Value: "Baz", @@ -213,12 +212,12 @@ func TestInterfaceExtends(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 81af4c7..95cff3a 100644 --- a/node/stmt/t_namespace_test.go +++ b/node/stmt/t_namespace_test.go @@ -1,7 +1,6 @@ package stmt_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -22,7 +21,7 @@ func TestNamespace(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, Stmts: []node.Node{ @@ -30,14 +29,14 @@ func TestNamespace(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 17, }, NamespaceName: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Parts: []node.Node{ @@ -45,7 +44,7 @@ func TestNamespace(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "Foo", @@ -56,12 +55,12 @@ func TestNamespace(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -74,7 +73,7 @@ func TestNamespaceStmts(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, Stmts: []node.Node{ @@ -82,14 +81,14 @@ func TestNamespaceStmts(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 19, }, NamespaceName: &name.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Parts: []node.Node{ @@ -97,7 +96,7 @@ func TestNamespaceStmts(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 14, + StartPos: 13, EndPos: 16, }, Value: "Foo", @@ -109,12 +108,12 @@ func TestNamespaceStmts(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -127,7 +126,7 @@ func TestAnonymousNamespace(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Stmts: []node.Node{ @@ -135,7 +134,7 @@ func TestAnonymousNamespace(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 15, }, Stmts: []node.Node{}, @@ -143,12 +142,12 @@ func TestAnonymousNamespace(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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 903b995..2072d7a 100644 --- a/node/stmt/t_property_list_test.go +++ b/node/stmt/t_property_list_test.go @@ -1,12 +1,12 @@ package stmt_test import ( - "bytes" "testing" "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" @@ -23,7 +23,7 @@ func TestProperty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, Stmts: []node.Node{ @@ -31,7 +31,7 @@ func TestProperty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 22, }, PhpDocComment: "", @@ -39,7 +39,7 @@ func TestProperty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 12, }, Value: "foo", @@ -49,7 +49,7 @@ func TestProperty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 21, }, Modifiers: []node.Node{ @@ -57,7 +57,7 @@ func TestProperty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 17, }, Value: "var", @@ -68,7 +68,7 @@ func TestProperty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, PhpDocComment: "", @@ -76,14 +76,14 @@ func TestProperty(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 20, }, Value: "a", @@ -97,12 +97,12 @@ func TestProperty(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -115,7 +115,7 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 40, }, Stmts: []node.Node{ @@ -123,7 +123,7 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 40, }, PhpDocComment: "", @@ -131,7 +131,7 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 12, }, Value: "foo", @@ -141,7 +141,7 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 39, }, Modifiers: []node.Node{ @@ -149,7 +149,7 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 20, }, Value: "public", @@ -158,7 +158,7 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, + StartPos: 21, EndPos: 27, }, Value: "static", @@ -169,7 +169,7 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 30, }, PhpDocComment: "", @@ -177,14 +177,14 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 30, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 30, }, Value: "a", @@ -195,7 +195,7 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 33, + StartPos: 32, EndPos: 38, }, PhpDocComment: "", @@ -203,14 +203,14 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 33, + StartPos: 32, EndPos: 34, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 33, + StartPos: 32, EndPos: 34, }, Value: "b", @@ -220,7 +220,7 @@ func TestProperties(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 38, + StartPos: 37, EndPos: 38, }, Value: "1", @@ -233,12 +233,12 @@ func TestProperties(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual = php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -251,7 +251,7 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 40, }, Stmts: []node.Node{ @@ -259,7 +259,7 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 4, + StartPos: 3, EndPos: 40, }, PhpDocComment: "", @@ -267,7 +267,7 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 10, + StartPos: 9, EndPos: 12, }, Value: "foo", @@ -277,7 +277,7 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 39, }, Modifiers: []node.Node{ @@ -285,7 +285,7 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 15, + StartPos: 14, EndPos: 20, }, Value: "public", @@ -294,7 +294,7 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, + StartPos: 21, EndPos: 27, }, Value: "static", @@ -305,7 +305,7 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 34, }, PhpDocComment: "", @@ -313,14 +313,14 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 30, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 30, }, Value: "a", @@ -330,7 +330,7 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 34, + StartPos: 33, EndPos: 34, }, Value: "1", @@ -340,7 +340,7 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 37, + StartPos: 36, EndPos: 38, }, PhpDocComment: "", @@ -348,14 +348,14 @@ func TestProperties2(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 37, + StartPos: 36, EndPos: 38, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 37, + StartPos: 36, EndPos: 38, }, Value: "b", @@ -369,13 +369,119 @@ func TestProperties2(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + 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) @@ -2354,7 +2345,7 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:308 + // line php5/php5.y:308 { yyVAL.list = []node.Node{} @@ -2362,7 +2353,7 @@ yydefault: } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:317 + // line php5/php5.y:317 { namePart := name.NewNamePart(yyDollar[1].token.Value) yyVAL.list = []node.Node{namePart} @@ -2377,7 +2368,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:330 + // line php5/php5.y:330 { namePart := name.NewNamePart(yyDollar[3].token.Value) yyVAL.list = append(yyDollar[1].list, namePart) @@ -2393,7 +2384,7 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:347 + // line php5/php5.y:347 { // error yyVAL.node = nil @@ -2402,7 +2393,7 @@ yydefault: } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:354 + // line php5/php5.y:354 { yyVAL.node = yyDollar[1].node @@ -2410,7 +2401,7 @@ yydefault: } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:360 + // line php5/php5.y:360 { yyVAL.node = yyDollar[1].node @@ -2418,7 +2409,7 @@ yydefault: } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:366 + // line php5/php5.y:366 { yyVAL.node = yyDollar[1].node @@ -2426,7 +2417,7 @@ yydefault: } case 10: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:372 + // line php5/php5.y:372 { yyVAL.node = stmt.NewHaltCompiler() @@ -2441,12 +2432,10 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - yylex.(*Parser).Begin(scanner.HALT_COMPILER) } case 11: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:390 + // line php5/php5.y:388 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2465,7 +2454,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:407 + // line php5/php5.y:405 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2484,7 +2473,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:424 + // line php5/php5.y:422 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2500,7 +2489,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:438 + // line php5/php5.y:436 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2516,7 +2505,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:452 + // line php5/php5.y:450 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2535,7 +2524,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:469 + // line php5/php5.y:467 { useType := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) @@ -2554,7 +2543,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:486 + // line php5/php5.y:484 { yyVAL.node = yyDollar[1].node @@ -2569,7 +2558,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:502 + // line php5/php5.y:500 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2580,7 +2569,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:511 + // line php5/php5.y:509 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2588,7 +2577,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:520 + // line php5/php5.y:518 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2604,7 +2593,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:534 + // line php5/php5.y:532 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2624,7 +2613,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:552 + // line php5/php5.y:550 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2642,7 +2631,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:568 + // line php5/php5.y:566 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2664,7 +2653,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:591 + // line php5/php5.y:589 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2675,7 +2664,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:600 + // line php5/php5.y:598 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2683,7 +2672,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:609 + // line php5/php5.y:607 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2699,7 +2688,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:623 + // line php5/php5.y:621 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2719,7 +2708,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:641 + // line php5/php5.y:639 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2737,7 +2726,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:657 + // line php5/php5.y:655 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2759,7 +2748,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:680 + // line php5/php5.y:678 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2770,7 +2759,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:689 + // line php5/php5.y:687 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -2778,7 +2767,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:698 + // line php5/php5.y:696 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2794,7 +2783,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:712 + // line php5/php5.y:710 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -2814,7 +2803,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:730 + // line php5/php5.y:728 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -2832,7 +2821,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:746 + // line php5/php5.y:744 { name := name.NewName(yyDollar[2].list) alias := node.NewIdentifier(yyDollar[4].token.Value) @@ -2854,7 +2843,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:769 + // line php5/php5.y:767 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -2877,7 +2866,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:790 + // line php5/php5.y:788 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -2898,7 +2887,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:812 + // line php5/php5.y:810 { if inlineHtmlNode, ok := yyDollar[2].node.(*stmt.InlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2913,7 +2902,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:825 + // line php5/php5.y:823 { yyVAL.list = []node.Node{} @@ -2921,7 +2910,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:835 + // line php5/php5.y:833 { // error yyVAL.node = nil @@ -2930,7 +2919,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:842 + // line php5/php5.y:840 { yyVAL.node = yyDollar[1].node @@ -2938,7 +2927,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:848 + // line php5/php5.y:846 { yyVAL.node = yyDollar[1].node @@ -2946,7 +2935,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:854 + // line php5/php5.y:852 { yyVAL.node = yyDollar[1].node @@ -2954,7 +2943,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:860 + // line php5/php5.y:858 { yyVAL.node = stmt.NewHaltCompiler() @@ -2969,12 +2958,10 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - yylex.(*Parser).Begin(scanner.HALT_COMPILER) } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:882 + // line php5/php5.y:878 { yyVAL.node = yyDollar[1].node @@ -2982,7 +2969,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:888 + // line php5/php5.y:884 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -2999,7 +2986,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:906 + // line php5/php5.y:902 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3014,7 +3001,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:919 + // line php5/php5.y:915 { yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) @@ -3042,7 +3029,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:943 + // 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) @@ -3070,7 +3057,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:967 + // line php5/php5.y:963 { switch n := yyDollar[3].node.(type) { case *stmt.While: @@ -3099,7 +3086,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:992 + // line php5/php5.y:988 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) @@ -3124,7 +3111,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1013 + // line php5/php5.y:1009 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3153,7 +3140,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1040 + // line php5/php5.y:1036 { switch n := yyDollar[3].node.(type) { case *stmt.Switch: @@ -3184,7 +3171,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1067 + // line php5/php5.y:1063 { yyVAL.node = stmt.NewBreak(nil) @@ -3200,7 +3187,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1081 + // line php5/php5.y:1077 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3216,7 +3203,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1095 + // line php5/php5.y:1091 { yyVAL.node = stmt.NewContinue(nil) @@ -3232,7 +3219,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1109 + // line php5/php5.y:1105 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3248,7 +3235,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1123 + // line php5/php5.y:1119 { yyVAL.node = stmt.NewReturn(nil) @@ -3264,7 +3251,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1137 + // line php5/php5.y:1133 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3280,7 +3267,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1151 + // line php5/php5.y:1147 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3296,7 +3283,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1165 + // line php5/php5.y:1161 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3312,7 +3299,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1179 + // line php5/php5.y:1175 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3328,7 +3315,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1193 + // line php5/php5.y:1189 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3344,7 +3331,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1207 + // line php5/php5.y:1203 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3361,7 +3348,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1222 + // line php5/php5.y:1218 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3375,7 +3362,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1234 + // line php5/php5.y:1230 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3391,7 +3378,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1248 + // line php5/php5.y:1244 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3409,7 +3396,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1264 + // line php5/php5.y:1260 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3452,7 +3439,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1304 + // line php5/php5.y:1300 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3495,7 +3482,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1344 + // line php5/php5.y:1340 { yyVAL.node = yyDollar[5].node yyVAL.node.(*stmt.Declare).Consts = yyDollar[3].list @@ -3512,7 +3499,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1359 + // line php5/php5.y:1355 { yyVAL.node = stmt.NewNop() @@ -3527,7 +3514,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1372 + // line php5/php5.y:1368 { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3547,7 +3534,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1390 + // line php5/php5.y:1386 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3563,7 +3550,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1404 + // line php5/php5.y:1400 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3582,7 +3569,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1424 + // line php5/php5.y:1420 { yyVAL.list = []node.Node{} @@ -3590,7 +3577,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1430 + // line php5/php5.y:1426 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3615,7 +3602,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1456 + // line php5/php5.y:1452 { yyVAL.node = nil @@ -3623,7 +3610,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1462 + // line php5/php5.y:1458 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3639,7 +3626,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1479 + // line php5/php5.y:1475 { yyVAL.list = yyDollar[1].list @@ -3647,7 +3634,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1485 + // line php5/php5.y:1481 { yyVAL.list = []node.Node{} @@ -3655,7 +3642,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1494 + // line php5/php5.y:1490 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3663,7 +3650,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1500 + // line php5/php5.y:1496 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3671,7 +3658,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:1509 + // line php5/php5.y:1505 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3695,7 +3682,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1534 + // line php5/php5.y:1530 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3703,7 +3690,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1540 + // line php5/php5.y:1536 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3714,7 +3701,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1552 + // line php5/php5.y:1548 { yyVAL.node = yyDollar[1].node @@ -3722,7 +3709,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1561 + // line php5/php5.y:1557 { yyVAL.node = yyDollar[1].node @@ -3730,7 +3717,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1570 + // line php5/php5.y:1566 { yyVAL.node = yyDollar[1].node @@ -3738,31 +3725,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1579 + // line php5/php5.y:1575 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1583 + // line php5/php5.y:1579 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1590 + // line php5/php5.y:1586 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1594 + // line php5/php5.y:1590 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:1601 + // 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, "") @@ -3788,7 +3775,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - //line php5/php5.y:1628 + // line php5/php5.y:1624 { name := node.NewIdentifier(yyDollar[2].token.Value) switch n := yyDollar[1].node.(type) { @@ -3818,7 +3805,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:1656 + // line php5/php5.y:1652 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[5].list, "") @@ -3837,7 +3824,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1677 + // line php5/php5.y:1673 { yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") @@ -3851,7 +3838,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1689 + // line php5/php5.y:1685 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3868,7 +3855,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1704 + // line php5/php5.y:1700 { yyVAL.node = stmt.NewTrait(nil, nil, "") @@ -3882,7 +3869,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1716 + // line php5/php5.y:1712 { classModifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") @@ -3899,7 +3886,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1734 + // line php5/php5.y:1730 { yyVAL.ClassExtends = nil @@ -3907,7 +3894,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1740 + // line php5/php5.y:1736 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -3921,13 +3908,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1755 + // line php5/php5.y:1751 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1762 + // line php5/php5.y:1758 { yyVAL.InterfaceExtends = nil @@ -3935,7 +3922,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1768 + // line php5/php5.y:1764 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -3949,7 +3936,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1783 + // line php5/php5.y:1779 { yyVAL.ClassImplements = nil @@ -3957,7 +3944,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1789 + // line php5/php5.y:1785 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -3971,7 +3958,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1804 + // line php5/php5.y:1800 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -3979,7 +3966,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1810 + // line php5/php5.y:1806 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3990,7 +3977,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:1822 + // line php5/php5.y:1818 { yyVAL.node = nil @@ -3998,7 +3985,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1828 + // line php5/php5.y:1824 { yyVAL.node = yyDollar[2].node @@ -4009,7 +3996,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1840 + // line php5/php5.y:1836 { yyVAL.node = yyDollar[1].node @@ -4017,7 +4004,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:1846 + // line php5/php5.y:1842 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -4031,7 +4018,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1858 + // line php5/php5.y:1854 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -4047,7 +4034,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1875 + // line php5/php5.y:1871 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -4058,7 +4045,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1884 + // line php5/php5.y:1880 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4077,7 +4064,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1904 + // line php5/php5.y:1900 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4088,7 +4075,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1913 + // line php5/php5.y:1909 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4107,7 +4094,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:1934 + // line php5/php5.y:1930 { yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) @@ -4118,7 +4105,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:1943 + // line php5/php5.y:1939 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewDeclare(nil, stmtList, true) @@ -4137,7 +4124,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:1964 + // line php5/php5.y:1960 { name := node.NewIdentifier(yyDollar[1].token.Value) constant := stmt.NewConstant(name, yyDollar[3].node, "") @@ -4155,7 +4142,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:1980 + // line php5/php5.y:1976 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -4174,7 +4161,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2001 + // line php5/php5.y:1997 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4191,7 +4178,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2016 + // line php5/php5.y:2012 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4209,7 +4196,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2032 + // line php5/php5.y:2028 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4228,7 +4215,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2049 + // line php5/php5.y:2045 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4249,7 +4236,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2072 + // line php5/php5.y:2068 { yyVAL.list = []node.Node{} @@ -4257,7 +4244,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2078 + // line php5/php5.y:2074 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4274,7 +4261,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2093 + // line php5/php5.y:2089 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4291,19 +4278,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2112 + // line php5/php5.y:2108 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2116 + // line php5/php5.y:2112 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2124 + // line php5/php5.y:2120 { yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) @@ -4314,7 +4301,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2133 + // line php5/php5.y:2129 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4333,7 +4320,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2155 + // line php5/php5.y:2151 { yyVAL.list = nil @@ -4341,7 +4328,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2161 + // line php5/php5.y:2157 { _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4364,7 +4351,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2184 + // line php5/php5.y:2180 { yyVAL.list = nil @@ -4372,7 +4359,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2190 + // line php5/php5.y:2186 { stmts := stmt.NewStmtList(yyDollar[5].list) _elseIf := stmt.NewAltElseIf(yyDollar[3].node, stmts) @@ -4398,7 +4385,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2216 + // line php5/php5.y:2212 { yyVAL.node = nil @@ -4406,7 +4393,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2222 + // line php5/php5.y:2218 { yyVAL.node = stmt.NewElse(yyDollar[2].node) @@ -4420,7 +4407,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2238 + // line php5/php5.y:2234 { yyVAL.node = nil @@ -4428,7 +4415,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2244 + // line php5/php5.y:2240 { stmts := stmt.NewStmtList(yyDollar[3].list) yyVAL.node = stmt.NewAltElse(stmts) @@ -4445,7 +4432,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2263 + // line php5/php5.y:2259 { yyVAL.list = yyDollar[1].list @@ -4453,7 +4440,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2269 + // line php5/php5.y:2265 { yyVAL.list = nil @@ -4461,7 +4448,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2278 + // line php5/php5.y:2274 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4469,7 +4456,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2284 + // line php5/php5.y:2280 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4480,7 +4467,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2296 + // line php5/php5.y:2292 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4530,7 +4517,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:2341 + // line php5/php5.y:2337 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4581,7 +4568,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2391 + // line php5/php5.y:2387 { yyVAL.node = nil @@ -4589,7 +4576,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2397 + // line php5/php5.y:2393 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4603,7 +4590,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2409 + // line php5/php5.y:2405 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4617,7 +4604,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2421 + // line php5/php5.y:2417 { yyVAL.node = yyDollar[1].node @@ -4625,7 +4612,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2431 + // line php5/php5.y:2427 { yyVAL.node = node.NewArgumentList(nil) @@ -4640,7 +4627,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2444 + // line php5/php5.y:2440 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4655,7 +4642,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2457 + // line php5/php5.y:2453 { arg := node.NewArgument(yyDollar[2].node, false, false) yyVAL.node = node.NewArgumentList([]node.Node{arg}) @@ -4672,7 +4659,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2476 + // line php5/php5.y:2472 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4680,7 +4667,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2482 + // line php5/php5.y:2478 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4691,7 +4678,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2494 + // line php5/php5.y:2490 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4705,7 +4692,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2506 + // line php5/php5.y:2502 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4719,7 +4706,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2518 + // line php5/php5.y:2514 { yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) @@ -4733,7 +4720,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2530 + // line php5/php5.y:2526 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4747,7 +4734,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2545 + // line php5/php5.y:2541 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4758,7 +4745,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2554 + // line php5/php5.y:2550 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -4766,7 +4753,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2564 + // line php5/php5.y:2560 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -4783,7 +4770,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2579 + // line php5/php5.y:2575 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -4798,7 +4785,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2592 + // line php5/php5.y:2588 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -4815,7 +4802,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2611 + // line php5/php5.y:2607 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4836,7 +4823,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:2630 + // line php5/php5.y:2626 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4858,7 +4845,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2650 + // line php5/php5.y:2646 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4878,7 +4865,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2668 + // line php5/php5.y:2664 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4899,7 +4886,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2691 + // line php5/php5.y:2687 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4907,7 +4894,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2697 + // line php5/php5.y:2693 { yyVAL.list = []node.Node{} @@ -4915,9 +4902,9 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2707 + // 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)) @@ -4931,7 +4918,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2721 + // line php5/php5.y:2717 { yyVAL.node = yyDollar[1].node @@ -4946,7 +4933,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2734 + // line php5/php5.y:2730 { yyVAL.node = yyDollar[1].node @@ -4954,7 +4941,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - //line php5/php5.y:2740 + // 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, "") @@ -4987,7 +4974,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2774 + // line php5/php5.y:2770 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -5001,7 +4988,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2789 + // line php5/php5.y:2785 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5009,7 +4996,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2795 + // line php5/php5.y:2791 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5020,7 +5007,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2807 + // line php5/php5.y:2803 { yyVAL.node = stmt.NewNop() @@ -5034,7 +5021,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2819 + // line php5/php5.y:2815 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -5048,7 +5035,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2834 + // line php5/php5.y:2830 { yyVAL.list = nil @@ -5056,7 +5043,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2840 + // line php5/php5.y:2836 { yyVAL.list = yyDollar[1].list @@ -5064,7 +5051,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2849 + // line php5/php5.y:2845 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5072,7 +5059,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2855 + // line php5/php5.y:2851 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5080,7 +5067,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2864 + // line php5/php5.y:2860 { yyVAL.node = yyDollar[1].node @@ -5092,7 +5079,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:2874 + // line php5/php5.y:2870 { yyVAL.node = yyDollar[1].node @@ -5104,7 +5091,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2887 + // line php5/php5.y:2883 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -5119,7 +5106,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2903 + // line php5/php5.y:2899 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5127,7 +5114,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2909 + // line php5/php5.y:2905 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5138,7 +5125,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2921 + // line php5/php5.y:2917 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5154,7 +5141,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:2935 + // line php5/php5.y:2931 { yyVAL.node = yyDollar[1].node @@ -5162,7 +5149,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2944 + // line php5/php5.y:2940 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5180,7 +5167,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:2963 + // line php5/php5.y:2959 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5198,7 +5185,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:2979 + // line php5/php5.y:2975 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5213,7 +5200,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:2995 + // line php5/php5.y:2991 { yyVAL.node = nil @@ -5221,7 +5208,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3001 + // line php5/php5.y:2997 { yyVAL.node = yyDollar[1].node @@ -5229,7 +5216,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3010 + // line php5/php5.y:3006 { yyVAL.node = stmt.NewNop() @@ -5244,7 +5231,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3023 + // line php5/php5.y:3019 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5259,7 +5246,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3039 + // line php5/php5.y:3035 { yyVAL.list = yyDollar[1].list @@ -5267,7 +5254,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3045 + // line php5/php5.y:3041 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5282,7 +5269,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3061 + // line php5/php5.y:3057 { yyVAL.list = nil @@ -5290,7 +5277,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3067 + // line php5/php5.y:3063 { yyVAL.list = yyDollar[1].list @@ -5298,7 +5285,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3076 + // line php5/php5.y:3072 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5306,7 +5293,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3082 + // line php5/php5.y:3078 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5314,7 +5301,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3091 + // line php5/php5.y:3087 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5328,7 +5315,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3103 + // line php5/php5.y:3099 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5342,7 +5329,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3115 + // line php5/php5.y:3111 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5356,7 +5343,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3127 + // line php5/php5.y:3123 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5370,7 +5357,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3139 + // line php5/php5.y:3135 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5384,7 +5371,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3151 + // line php5/php5.y:3147 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5398,7 +5385,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3166 + // line php5/php5.y:3162 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5419,7 +5406,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3185 + // line php5/php5.y:3181 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5441,7 +5428,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3205 + // line php5/php5.y:3201 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5461,7 +5448,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3223 + // line php5/php5.y:3219 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5482,7 +5469,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:3245 + // line php5/php5.y:3241 { name := node.NewIdentifier(yyDollar[3].token.Value) constant := stmt.NewConstant(name, yyDollar[5].node, "") @@ -5505,7 +5492,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3266 + // line php5/php5.y:3262 { name := node.NewIdentifier(yyDollar[2].token.Value) constant := stmt.NewConstant(name, yyDollar[4].node, "") @@ -5525,7 +5512,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3287 + // line php5/php5.y:3283 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5536,7 +5523,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3296 + // line php5/php5.y:3292 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5544,7 +5531,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3306 + // line php5/php5.y:3302 { yyVAL.list = nil @@ -5552,7 +5539,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3312 + // line php5/php5.y:3308 { yyVAL.list = yyDollar[1].list @@ -5560,7 +5547,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3321 + // line php5/php5.y:3317 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5571,7 +5558,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3330 + // line php5/php5.y:3326 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -5579,7 +5566,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3339 + // line php5/php5.y:3335 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5587,7 +5574,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3345 + // line php5/php5.y:3341 { yyVAL.list = yyDollar[1].list @@ -5595,7 +5582,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3354 + // line php5/php5.y:3350 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -5611,7 +5598,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3368 + // line php5/php5.y:3364 { fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) yyVAL.list = []node.Node{fetch} @@ -5627,7 +5614,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3385 + // line php5/php5.y:3381 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5635,7 +5622,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3391 + // line php5/php5.y:3387 { yyVAL.list = yyDollar[1].list @@ -5643,7 +5630,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3397 + // line php5/php5.y:3393 { yyVAL.list = yyDollar[1].list @@ -5651,7 +5638,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:3406 + // line php5/php5.y:3402 { yyVAL.list = nil @@ -5659,7 +5646,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:3412 + // line php5/php5.y:3408 { yyVAL.list = yyDollar[1].list @@ -5667,7 +5654,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3421 + // line php5/php5.y:3417 { if yyDollar[3].node != nil { @@ -5685,7 +5672,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3440 + // line php5/php5.y:3436 { listNode := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(listNode, yyDollar[6].node) @@ -5704,7 +5691,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3457 + // line php5/php5.y:3453 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5719,7 +5706,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:3470 + // line php5/php5.y:3466 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5735,7 +5722,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:3484 + // line php5/php5.y:3480 { var _new *expr.New @@ -5764,7 +5751,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3511 + // line php5/php5.y:3507 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5778,7 +5765,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3523 + // line php5/php5.y:3519 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5792,7 +5779,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3535 + // line php5/php5.y:3531 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5807,7 +5794,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3548 + // line php5/php5.y:3544 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5822,7 +5809,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3561 + // line php5/php5.y:3557 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5837,7 +5824,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3574 + // line php5/php5.y:3570 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5852,7 +5839,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3587 + // line php5/php5.y:3583 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5867,7 +5854,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3600 + // line php5/php5.y:3596 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5882,7 +5869,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3613 + // line php5/php5.y:3609 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5897,7 +5884,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3626 + // line php5/php5.y:3622 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5912,7 +5899,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3639 + // line php5/php5.y:3635 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5927,7 +5914,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3652 + // line php5/php5.y:3648 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5942,7 +5929,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3665 + // line php5/php5.y:3661 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5957,7 +5944,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3678 + // line php5/php5.y:3674 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5972,7 +5959,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3691 + // line php5/php5.y:3687 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5986,7 +5973,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3703 + // line php5/php5.y:3699 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -6001,7 +5988,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3716 + // line php5/php5.y:3712 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -6015,7 +6002,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3728 + // line php5/php5.y:3724 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -6030,7 +6017,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3741 + // line php5/php5.y:3737 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -6045,7 +6032,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3754 + // line php5/php5.y:3750 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -6060,7 +6047,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3767 + // line php5/php5.y:3763 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -6075,7 +6062,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3780 + // line php5/php5.y:3776 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -6090,7 +6077,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3793 + // line php5/php5.y:3789 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -6105,7 +6092,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3806 + // line php5/php5.y:3802 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -6120,7 +6107,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3819 + // line php5/php5.y:3815 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -6135,7 +6122,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3832 + // line php5/php5.y:3828 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -6150,7 +6137,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3845 + // line php5/php5.y:3841 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -6165,7 +6152,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3858 + // line php5/php5.y:3854 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -6180,7 +6167,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3871 + // line php5/php5.y:3867 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -6195,7 +6182,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3884 + // line php5/php5.y:3880 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -6210,7 +6197,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3897 + // line php5/php5.y:3893 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -6225,7 +6212,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3910 + // line php5/php5.y:3906 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6240,7 +6227,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3923 + // line php5/php5.y:3919 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6255,7 +6242,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3936 + // line php5/php5.y:3932 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6270,7 +6257,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3949 + // line php5/php5.y:3945 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6284,7 +6271,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3961 + // line php5/php5.y:3957 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6298,7 +6285,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3973 + // line php5/php5.y:3969 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6312,7 +6299,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:3985 + // line php5/php5.y:3981 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6326,7 +6313,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:3997 + // line php5/php5.y:3993 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6341,7 +6328,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4010 + // line php5/php5.y:4006 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6356,7 +6343,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4023 + // line php5/php5.y:4019 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6371,7 +6358,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4036 + // line php5/php5.y:4032 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6387,7 +6374,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4050 + // line php5/php5.y:4046 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6402,7 +6389,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4063 + // line php5/php5.y:4059 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6417,7 +6404,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4076 + // line php5/php5.y:4072 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6432,7 +6419,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4089 + // line php5/php5.y:4085 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6447,7 +6434,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4102 + // line php5/php5.y:4098 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6462,7 +6449,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4115 + // line php5/php5.y:4111 { yyVAL.node = yyDollar[1].node @@ -6475,7 +6462,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4124 + // line php5/php5.y:4120 { yyVAL.node = yyDollar[1].node @@ -6483,7 +6470,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4130 + // line php5/php5.y:4126 { yyVAL.node = yyDollar[2].node @@ -6517,7 +6504,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:4162 + // line php5/php5.y:4158 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6533,7 +6520,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4176 + // line php5/php5.y:4172 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6549,7 +6536,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4190 + // line php5/php5.y:4186 { yyVAL.node = yyDollar[1].node @@ -6557,7 +6544,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4196 + // line php5/php5.y:4192 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6572,7 +6559,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4209 + // line php5/php5.y:4205 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6587,7 +6574,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4222 + // line php5/php5.y:4218 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6602,7 +6589,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4235 + // line php5/php5.y:4231 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6617,7 +6604,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4248 + // line php5/php5.y:4244 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6632,7 +6619,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4261 + // line php5/php5.y:4257 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6647,7 +6634,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4274 + // line php5/php5.y:4270 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6662,7 +6649,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4287 + // line php5/php5.y:4283 { e := yyDollar[2].node.(*expr.Exit) yyVAL.node = yyDollar[2].node @@ -6685,7 +6672,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4308 + // line php5/php5.y:4304 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6699,7 +6686,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4320 + // line php5/php5.y:4316 { yyVAL.node = yyDollar[1].node @@ -6707,7 +6694,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4326 + // line php5/php5.y:4322 { yyVAL.node = yyDollar[1].node @@ -6715,7 +6702,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4332 + // line php5/php5.y:4328 { yyVAL.node = yyDollar[1].node @@ -6723,7 +6710,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4338 + // line php5/php5.y:4334 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6737,7 +6724,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4350 + // line php5/php5.y:4346 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6751,7 +6738,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4362 + // line php5/php5.y:4358 { yyVAL.node = expr.NewYield(nil, nil) @@ -6765,7 +6752,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - //line php5/php5.y:4374 + // line php5/php5.y:4370 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") @@ -6794,7 +6781,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - //line php5/php5.y:4400 + // line php5/php5.y:4396 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") @@ -6824,7 +6811,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4430 + // line php5/php5.y:4426 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6838,7 +6825,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4442 + // line php5/php5.y:4438 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6852,7 +6839,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4454 + // line php5/php5.y:4450 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6867,7 +6854,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4467 + // line php5/php5.y:4463 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6882,7 +6869,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4483 + // line php5/php5.y:4479 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6898,7 +6885,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4497 + // line php5/php5.y:4493 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6914,7 +6901,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4511 + // line php5/php5.y:4507 { str := scalar.NewString(yyDollar[1].token.Value) yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) @@ -6932,7 +6919,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4527 + // line php5/php5.y:4523 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -6948,7 +6935,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4544 + // line php5/php5.y:4540 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -6964,7 +6951,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4558 + // line php5/php5.y:4554 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -6979,13 +6966,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4574 + // line php5/php5.y:4570 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4581 + // line php5/php5.y:4577 { yyVAL.ClosureUse = nil @@ -6993,7 +6980,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4587 + // line php5/php5.y:4583 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -7009,7 +6996,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4604 + // line php5/php5.y:4600 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7028,7 +7015,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4621 + // line php5/php5.y:4617 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7050,7 +7037,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4641 + // line php5/php5.y:4637 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7068,7 +7055,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4657 + // line php5/php5.y:4653 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -7089,7 +7076,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4679 + // line php5/php5.y:4675 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) @@ -7105,7 +7092,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4693 + // line php5/php5.y:4689 { funcName := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) @@ -7122,7 +7109,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4708 + // line php5/php5.y:4704 { funcName := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) @@ -7138,7 +7125,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4722 + // line php5/php5.y:4718 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7153,7 +7140,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4735 + // line php5/php5.y:4731 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7168,7 +7155,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4748 + // line php5/php5.y:4744 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7183,7 +7170,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4761 + // line php5/php5.y:4757 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) @@ -7198,7 +7185,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4774 + // line php5/php5.y:4770 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) @@ -7212,7 +7199,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4789 + // line php5/php5.y:4785 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7226,7 +7213,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4801 + // line php5/php5.y:4797 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -7240,7 +7227,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4813 + // line php5/php5.y:4809 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -7255,7 +7242,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4826 + // line php5/php5.y:4822 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -7269,7 +7256,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4841 + // line php5/php5.y:4837 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -7283,7 +7270,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:4853 + // line php5/php5.y:4849 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -7298,7 +7285,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4866 + // line php5/php5.y:4862 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -7312,7 +7299,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4881 + // line php5/php5.y:4877 { yyVAL.node = yyDollar[1].node @@ -7320,7 +7307,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4887 + // line php5/php5.y:4883 { yyVAL.node = yyDollar[1].node @@ -7328,7 +7315,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:4896 + // line php5/php5.y:4892 { yyVAL.node = yyDollar[1].node @@ -7371,7 +7358,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4937 + // line php5/php5.y:4933 { yyVAL.node = yyDollar[1].node @@ -7379,7 +7366,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4947 + // line php5/php5.y:4943 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7387,7 +7374,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4953 + // line php5/php5.y:4949 { yyVAL.list = []node.Node{} @@ -7395,7 +7382,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4963 + // line php5/php5.y:4959 { yyVAL.list = yyDollar[2].list @@ -7406,7 +7393,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:4975 + // line php5/php5.y:4971 { yyVAL.node = expr.NewExit(nil) @@ -7414,7 +7401,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:4981 + // line php5/php5.y:4977 { yyVAL.node = expr.NewExit(nil) @@ -7429,7 +7416,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:4994 + // line php5/php5.y:4990 { yyVAL.node = expr.NewExit(yyDollar[1].node) @@ -7450,7 +7437,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5014 + // line php5/php5.y:5010 { yyVAL.list = []node.Node{} @@ -7458,7 +7445,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5020 + // line php5/php5.y:5016 { part := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{part} @@ -7470,7 +7457,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5030 + // line php5/php5.y:5026 { yyVAL.list = yyDollar[1].list @@ -7478,7 +7465,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5039 + // line php5/php5.y:5035 { yyVAL.node = nil @@ -7486,7 +7473,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5045 + // line php5/php5.y:5041 { yyVAL.node = yyDollar[1].node @@ -7494,7 +7481,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5054 + // line php5/php5.y:5050 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -7508,7 +7495,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5066 + // line php5/php5.y:5062 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -7522,7 +7509,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5078 + // line php5/php5.y:5074 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7536,7 +7523,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5090 + // line php5/php5.y:5086 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7550,7 +7537,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5102 + // line php5/php5.y:5098 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7564,7 +7551,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5114 + // line php5/php5.y:5110 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7578,7 +7565,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5126 + // line php5/php5.y:5122 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7592,7 +7579,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5138 + // line php5/php5.y:5134 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7606,7 +7593,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5150 + // line php5/php5.y:5146 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7620,7 +7607,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5162 + // line php5/php5.y:5158 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7634,7 +7621,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5174 + // line php5/php5.y:5170 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7650,7 +7637,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5188 + // line php5/php5.y:5184 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7664,7 +7651,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5203 + // line php5/php5.y:5199 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -7682,7 +7669,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5222 + // line php5/php5.y:5218 { yyVAL.node = yyDollar[1].node @@ -7690,7 +7677,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5231 + // line php5/php5.y:5227 { yyVAL.node = yyDollar[1].node @@ -7698,7 +7685,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5237 + // line php5/php5.y:5233 { yyVAL.node = yyDollar[1].node @@ -7706,7 +7693,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5243 + // line php5/php5.y:5239 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -7722,7 +7709,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5257 + // line php5/php5.y:5253 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -7739,7 +7726,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5272 + // line php5/php5.y:5268 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -7755,7 +7742,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5286 + // line php5/php5.y:5282 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -7771,7 +7758,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5300 + // line php5/php5.y:5296 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -7786,7 +7773,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5313 + // line php5/php5.y:5309 { yyVAL.node = yyDollar[1].node @@ -7794,7 +7781,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5319 + // line php5/php5.y:5315 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7808,7 +7795,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5331 + // line php5/php5.y:5327 { yyVAL.node = yyDollar[1].node @@ -7816,7 +7803,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5340 + // line php5/php5.y:5336 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7832,7 +7819,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5354 + // line php5/php5.y:5350 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -7847,7 +7834,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5367 + // line php5/php5.y:5363 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -7862,7 +7849,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5380 + // line php5/php5.y:5376 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -7877,7 +7864,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5393 + // line php5/php5.y:5389 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -7892,7 +7879,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5406 + // line php5/php5.y:5402 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -7907,7 +7894,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5419 + // line php5/php5.y:5415 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -7922,7 +7909,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5432 + // line php5/php5.y:5428 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -7936,7 +7923,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5444 + // line php5/php5.y:5440 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -7950,7 +7937,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5456 + // line php5/php5.y:5452 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -7965,7 +7952,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5469 + // line php5/php5.y:5465 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -7980,7 +7967,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5482 + // line php5/php5.y:5478 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -7995,7 +7982,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5495 + // line php5/php5.y:5491 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -8010,7 +7997,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5508 + // line php5/php5.y:5504 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -8025,7 +8012,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5521 + // line php5/php5.y:5517 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -8040,7 +8027,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5534 + // line php5/php5.y:5530 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -8055,7 +8042,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5547 + // line php5/php5.y:5543 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -8070,7 +8057,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5560 + // line php5/php5.y:5556 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -8085,7 +8072,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5573 + // line php5/php5.y:5569 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -8100,7 +8087,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5586 + // line php5/php5.y:5582 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -8115,7 +8102,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5599 + // line php5/php5.y:5595 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -8130,7 +8117,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5612 + // line php5/php5.y:5608 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -8145,7 +8132,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5625 + // line php5/php5.y:5621 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -8160,7 +8147,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5638 + // line php5/php5.y:5634 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -8176,7 +8163,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5652 + // line php5/php5.y:5648 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -8191,7 +8178,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5665 + // line php5/php5.y:5661 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -8206,7 +8193,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5678 + // line php5/php5.y:5674 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -8221,7 +8208,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5691 + // line php5/php5.y:5687 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -8236,7 +8223,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:5704 + // line php5/php5.y:5700 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -8252,7 +8239,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5718 + // line php5/php5.y:5714 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -8268,7 +8255,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5732 + // line php5/php5.y:5728 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -8282,7 +8269,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5744 + // line php5/php5.y:5740 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -8296,7 +8283,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5756 + // line php5/php5.y:5752 { yyVAL.node = yyDollar[2].node @@ -8308,7 +8295,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5769 + // line php5/php5.y:5765 { yyVAL.node = yyDollar[1].node @@ -8316,7 +8303,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5775 + // line php5/php5.y:5771 { name := name.NewName(yyDollar[1].list) yyVAL.node = expr.NewConstFetch(name) @@ -8332,7 +8319,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5789 + // line php5/php5.y:5785 { name := name.NewRelative(yyDollar[3].list) yyVAL.node = expr.NewConstFetch(name) @@ -8349,7 +8336,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5804 + // line php5/php5.y:5800 { name := name.NewFullyQualified(yyDollar[2].list) yyVAL.node = expr.NewConstFetch(name) @@ -8365,7 +8352,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5821 + // line php5/php5.y:5817 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = expr.NewVariable(name) @@ -8381,7 +8368,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5835 + // line php5/php5.y:5831 { yyVAL.node = yyDollar[1].node @@ -8389,7 +8376,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5841 + // line php5/php5.y:5837 { yyVAL.node = yyDollar[1].node @@ -8397,7 +8384,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5847 + // line php5/php5.y:5843 { yyVAL.node = yyDollar[1].node @@ -8405,7 +8392,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5853 + // line php5/php5.y:5849 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -8419,7 +8406,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5865 + // line php5/php5.y:5861 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -8433,7 +8420,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5877 + // line php5/php5.y:5873 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -8447,7 +8434,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5892 + // line php5/php5.y:5888 { yyVAL.list = nil @@ -8455,7 +8442,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:5898 + // line php5/php5.y:5894 { yyVAL.list = yyDollar[1].list @@ -8468,21 +8455,21 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:5912 + // line php5/php5.y:5908 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5916 + // line php5/php5.y:5912 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:5923 + // 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 @@ -8497,9 +8484,9 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5938 + // 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 @@ -8513,9 +8500,9 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5952 + // 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 @@ -8529,9 +8516,9 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5966 + // 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 @@ -8544,7 +8531,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5982 + // line php5/php5.y:5978 { yyVAL.node = yyDollar[1].node @@ -8552,7 +8539,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:5988 + // line php5/php5.y:5984 { yyVAL.node = yyDollar[1].node @@ -8560,7 +8547,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:5997 + // line php5/php5.y:5993 { yyVAL.node = yyDollar[2].node @@ -8578,7 +8565,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6013 + // line php5/php5.y:6009 { yyVAL.node = yyDollar[2].node @@ -8596,7 +8583,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6033 + // line php5/php5.y:6029 { yyVAL.node = yyDollar[1].node @@ -8604,7 +8591,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6043 + // line php5/php5.y:6039 { yyVAL.node = yyDollar[1].node @@ -8612,7 +8599,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6052 + // line php5/php5.y:6048 { yyVAL.node = yyDollar[1].node @@ -8620,7 +8607,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6061 + // line php5/php5.y:6057 { yyVAL.node = yyDollar[1].node @@ -8680,7 +8667,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6119 + // line php5/php5.y:6115 { yyVAL.node = yyDollar[1].node @@ -8688,7 +8675,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6128 + // line php5/php5.y:6124 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8696,7 +8683,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6134 + // line php5/php5.y:6130 { yyVAL.list = []node.Node{} @@ -8704,7 +8691,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6144 + // 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 @@ -8720,7 +8707,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6161 + // line php5/php5.y:6157 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -8736,7 +8723,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6175 + // line php5/php5.y:6171 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = []node.Node{yyDollar[1].node, fetch} @@ -8752,7 +8739,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6192 + // line php5/php5.y:6188 { yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) @@ -8763,7 +8750,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6204 + // line php5/php5.y:6200 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -8771,7 +8758,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6210 + // line php5/php5.y:6206 { yyVAL.list = yyDollar[1].list @@ -8779,7 +8766,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6216 + // line php5/php5.y:6212 { yyVAL.list = nil @@ -8787,7 +8774,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6225 + // line php5/php5.y:6221 { yyVAL.node = yyDollar[1].node @@ -8795,7 +8782,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6231 + // line php5/php5.y:6227 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8809,7 +8796,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6246 + // line php5/php5.y:6242 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8824,7 +8811,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6259 + // line php5/php5.y:6255 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -8839,7 +8826,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6275 + // line php5/php5.y:6271 { yyVAL.node = yyDollar[1].node @@ -8847,7 +8834,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6284 + // line php5/php5.y:6280 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8863,7 +8850,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6298 + // line php5/php5.y:6294 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8879,7 +8866,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6315 + // line php5/php5.y:6311 { yyVAL.node = yyDollar[1].node @@ -8887,7 +8874,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6321 + // line php5/php5.y:6317 { yyVAL.node = yyDollar[1].node @@ -8895,7 +8882,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6327 + // line php5/php5.y:6323 { yyVAL.node = yyDollar[1].node @@ -8903,7 +8890,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6337 + // line php5/php5.y:6333 { yyVAL.node = yyDollar[1].node @@ -8911,7 +8898,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6343 + // line php5/php5.y:6339 { yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) @@ -8925,7 +8912,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6355 + // line php5/php5.y:6351 { yyVAL.node = yyDollar[1].node @@ -8933,7 +8920,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6364 + // line php5/php5.y:6360 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8949,7 +8936,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6378 + // line php5/php5.y:6374 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -8965,7 +8952,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6392 + // line php5/php5.y:6388 { yyVAL.node = yyDollar[1].node @@ -8973,7 +8960,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6402 + // line php5/php5.y:6398 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -8990,7 +8977,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6417 + // line php5/php5.y:6413 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -9007,7 +8994,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6435 + // line php5/php5.y:6431 { yyVAL.node = nil @@ -9015,7 +9002,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6441 + // line php5/php5.y:6437 { yyVAL.node = yyDollar[1].node @@ -9023,7 +9010,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6451 + // line php5/php5.y:6447 { yyVAL.list = yyDollar[1].list @@ -9031,7 +9018,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6457 + // line php5/php5.y:6453 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -9043,7 +9030,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6470 + // line php5/php5.y:6466 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -9059,7 +9046,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6484 + // line php5/php5.y:6480 { fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) yyVAL.list = append(yyDollar[1].list, fetch) @@ -9075,7 +9062,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6498 + // line php5/php5.y:6494 { fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) yyVAL.list = []node.Node{fetch} @@ -9087,7 +9074,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6511 + // line php5/php5.y:6507 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -9101,7 +9088,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6523 + // line php5/php5.y:6519 { yyVAL.node = yyDollar[2].node @@ -9116,7 +9103,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6539 + // line php5/php5.y:6535 { n := expr.NewVariable(nil) yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} @@ -9132,7 +9119,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6553 + // line php5/php5.y:6549 { n := expr.NewVariable(nil) @@ -9152,10 +9139,10 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6574 + // 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) @@ -9167,7 +9154,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6587 + // line php5/php5.y:6583 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -9179,9 +9166,9 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6601 + // 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)) @@ -9193,10 +9180,10 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6613 + // 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)) @@ -9211,15 +9198,15 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - //line php5/php5.y:6629 + // 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:6639 + // line php5/php5.y:6635 { yyVAL.list = []node.Node{} @@ -9227,12 +9214,12 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6645 + // 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 @@ -9244,9 +9231,9 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - //line php5/php5.y:6663 + // 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 @@ -9261,9 +9248,9 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6678 + // 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 @@ -9277,9 +9264,9 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6692 + // 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 @@ -9293,9 +9280,9 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6706 + // 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 @@ -9308,10 +9295,10 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6719 + // 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 @@ -9328,10 +9315,10 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6737 + // 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 @@ -9346,10 +9333,10 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6753 + // 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 @@ -9365,10 +9352,10 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6770 + // 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 @@ -9382,7 +9369,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6788 + // line php5/php5.y:6784 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9390,7 +9377,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6794 + // line php5/php5.y:6790 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9405,7 +9392,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6807 + // line php5/php5.y:6803 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9413,7 +9400,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:6813 + // line php5/php5.y:6809 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -9428,7 +9415,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6829 + // line php5/php5.y:6825 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -9445,7 +9432,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6844 + // line php5/php5.y:6840 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9465,7 +9452,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6862 + // line php5/php5.y:6858 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -9487,7 +9474,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6882 + // line php5/php5.y:6878 { variable := expr.NewVariable(yyDollar[2].node) @@ -9504,7 +9491,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6897 + // line php5/php5.y:6893 { name := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(name) @@ -9523,7 +9510,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - //line php5/php5.y:6914 + // line php5/php5.y:6910 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -9544,7 +9531,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:6933 + // line php5/php5.y:6929 { yyVAL.node = yyDollar[2].node @@ -9556,7 +9543,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6946 + // line php5/php5.y:6942 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -9570,7 +9557,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6958 + // line php5/php5.y:6954 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -9589,7 +9576,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:6975 + // line php5/php5.y:6971 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -9606,7 +9593,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:6993 + // line php5/php5.y:6989 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -9622,7 +9609,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:7007 + // line php5/php5.y:7003 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9638,7 +9625,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:7021 + // line php5/php5.y:7017 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -9654,7 +9641,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:7035 + // line php5/php5.y:7031 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -9668,7 +9655,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:7047 + // line php5/php5.y:7043 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -9682,7 +9669,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - //line php5/php5.y:7059 + // line php5/php5.y:7055 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -9698,7 +9685,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:7073 + // line php5/php5.y:7069 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -9712,7 +9699,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - //line php5/php5.y:7085 + // line php5/php5.y:7081 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -9726,7 +9713,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:7100 + // line php5/php5.y:7096 { yyVAL.list = []node.Node{yyDollar[1].node} @@ -9734,7 +9721,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7106 + // line php5/php5.y:7102 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9745,7 +9732,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:7118 + // line php5/php5.y:7114 { yyVAL.node = yyDollar[1].node @@ -9753,7 +9740,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line php5/php5.y:7124 + // line php5/php5.y:7120 { yyVAL.node = yyDollar[1].node @@ -9761,7 +9748,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7133 + // line php5/php5.y:7129 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9779,7 +9766,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7149 + // line php5/php5.y:7145 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9797,7 +9784,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7168 + // line php5/php5.y:7164 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) @@ -9815,7 +9802,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - //line php5/php5.y:7187 + // 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 57a8ba7..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 @@ -282,11 +284,9 @@ start: yylex.(*Parser).rootNode = node.NewRoot($1) yylex.(*Parser).rootNode.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, freefloating.End, yylex.(*Parser).currentToken.FreeFloating) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - if yylex.(*Parser).currentToken.Value == "\xff" { - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, freefloating.End, yylex.(*Parser).currentToken.FreeFloating) - } } ; @@ -383,8 +383,6 @@ top_statement: yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - yylex.(*Parser).Begin(scanner.HALT_COMPILER) } | T_NAMESPACE namespace_name ';' { @@ -871,8 +869,6 @@ inner_statement: yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - yylex.(*Parser).Begin(scanner.HALT_COMPILER) } ; @@ -2705,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)) @@ -5921,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 @@ -5936,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 @@ -5950,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 @@ -5964,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 @@ -6573,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) @@ -6599,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)) @@ -6612,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)) @@ -6627,7 +6623,7 @@ assignment_list_element: } | /* empty */ { - $$ = expr.NewArrayItem(nil, nil) + $$ = expr.NewArrayItem(nil, nil, false) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6646,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 @@ -6661,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 @@ -6676,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 @@ -6690,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 @@ -6704,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 @@ -6718,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 @@ -6736,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 @@ -6752,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 @@ -6769,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 a5418f2..1cdd5aa 100644 --- a/php5/php5_bench_test.go +++ b/php5/php5_bench_test.go @@ -1,7 +1,6 @@ package php5_test import ( - "bytes" "testing" "github.com/z7zmey/php-parser/php5" @@ -414,7 +413,7 @@ CAD; ` for n := 0; n < b.N; n++ { - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() } } diff --git a/php5/php5_test.go b/php5/php5_test.go index dbf370f..3cbb727 100644 --- a/php5/php5_test.go +++ b/php5/php5_test.go @@ -1,7 +1,6 @@ package php5_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -407,7 +406,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 379, - StartPos: 6, + StartPos: 5, EndPos: 6944, }, Stmts: []node.Node{ @@ -415,21 +414,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 20, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 19, }, Function: &name.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 8, }, Parts: []node.Node{ @@ -437,7 +436,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 8, }, Value: "foo", @@ -448,7 +447,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 9, + StartPos: 8, EndPos: 19, }, Arguments: []node.Node{ @@ -456,23 +455,23 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 10, + StartPos: 9, EndPos: 11, }, - Variadic: false, IsReference: false, + Variadic: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -483,7 +482,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 14, + StartPos: 13, EndPos: 18, }, Variadic: true, @@ -492,14 +491,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 17, + StartPos: 16, EndPos: 18, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 17, + StartPos: 16, EndPos: 18, }, Value: "b", @@ -514,28 +513,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 24, + StartPos: 23, EndPos: 39, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 24, + StartPos: 23, EndPos: 38, }, Function: &expr.Variable{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 24, + StartPos: 23, EndPos: 27, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 24, + StartPos: 23, EndPos: 27, }, Value: "foo", @@ -545,7 +544,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, + StartPos: 27, EndPos: 38, }, Arguments: []node.Node{ @@ -553,7 +552,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 29, + StartPos: 28, EndPos: 30, }, Variadic: false, @@ -562,14 +561,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 29, + StartPos: 28, EndPos: 30, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 29, + StartPos: 28, EndPos: 30, }, Value: "a", @@ -580,7 +579,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 33, + StartPos: 32, EndPos: 37, }, Variadic: true, @@ -589,14 +588,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 36, + StartPos: 35, EndPos: 37, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 36, + StartPos: 35, EndPos: 37, }, Value: "b", @@ -611,28 +610,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 43, + StartPos: 42, EndPos: 63, }, Expr: &expr.MethodCall{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 43, + StartPos: 42, EndPos: 62, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 43, + StartPos: 42, EndPos: 46, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 43, + StartPos: 42, EndPos: 46, }, Value: "foo", @@ -642,7 +641,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 49, + StartPos: 48, EndPos: 51, }, Value: "bar", @@ -651,7 +650,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 52, + StartPos: 51, EndPos: 62, }, Arguments: []node.Node{ @@ -659,7 +658,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 53, + StartPos: 52, EndPos: 54, }, Variadic: false, @@ -668,14 +667,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 53, + StartPos: 52, EndPos: 54, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 53, + StartPos: 52, EndPos: 54, }, Value: "a", @@ -686,7 +685,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 57, + StartPos: 56, EndPos: 61, }, Variadic: true, @@ -695,14 +694,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 60, + StartPos: 59, EndPos: 61, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 60, + StartPos: 59, EndPos: 61, }, Value: "b", @@ -717,21 +716,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, + StartPos: 66, EndPos: 86, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, + StartPos: 66, EndPos: 85, }, Class: &name.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, + StartPos: 66, EndPos: 69, }, Parts: []node.Node{ @@ -739,7 +738,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, + StartPos: 66, EndPos: 69, }, Value: "foo", @@ -750,7 +749,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 72, + StartPos: 71, EndPos: 74, }, Value: "bar", @@ -759,7 +758,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 75, + StartPos: 74, EndPos: 85, }, Arguments: []node.Node{ @@ -767,7 +766,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 76, + StartPos: 75, EndPos: 77, }, Variadic: false, @@ -776,14 +775,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 76, + StartPos: 75, EndPos: 77, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 76, + StartPos: 75, EndPos: 77, }, Value: "a", @@ -794,7 +793,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 80, + StartPos: 79, EndPos: 84, }, Variadic: true, @@ -803,14 +802,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 83, + StartPos: 82, EndPos: 84, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 83, + StartPos: 82, EndPos: 84, }, Value: "b", @@ -825,28 +824,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, + StartPos: 89, EndPos: 110, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, + StartPos: 89, EndPos: 109, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, + StartPos: 89, EndPos: 93, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, + StartPos: 89, EndPos: 93, }, Value: "foo", @@ -856,7 +855,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 96, + StartPos: 95, EndPos: 98, }, Value: "bar", @@ -865,7 +864,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 99, + StartPos: 98, EndPos: 109, }, Arguments: []node.Node{ @@ -873,7 +872,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 100, + StartPos: 99, EndPos: 101, }, Variadic: false, @@ -882,14 +881,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 100, + StartPos: 99, EndPos: 101, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 100, + StartPos: 99, EndPos: 101, }, Value: "a", @@ -900,7 +899,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 104, + StartPos: 103, EndPos: 108, }, Variadic: true, @@ -909,14 +908,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 107, + StartPos: 106, EndPos: 108, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 107, + StartPos: 106, EndPos: 108, }, Value: "b", @@ -931,21 +930,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 114, + StartPos: 113, EndPos: 132, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 114, + StartPos: 113, EndPos: 131, }, Class: &name.Name{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 118, + StartPos: 117, EndPos: 120, }, Parts: []node.Node{ @@ -953,7 +952,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 118, + StartPos: 117, EndPos: 120, }, Value: "foo", @@ -964,7 +963,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 121, + StartPos: 120, EndPos: 131, }, Arguments: []node.Node{ @@ -972,23 +971,23 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 122, + StartPos: 121, EndPos: 123, }, - Variadic: false, IsReference: false, + Variadic: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 122, + StartPos: 121, EndPos: 123, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 122, + StartPos: 121, EndPos: 123, }, Value: "a", @@ -999,7 +998,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 126, + StartPos: 125, EndPos: 130, }, Variadic: true, @@ -1008,14 +1007,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 129, + StartPos: 128, EndPos: 130, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 129, + StartPos: 128, EndPos: 130, }, Value: "b", @@ -1030,16 +1029,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 137, + StartPos: 136, EndPos: 180, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 146, + StartPos: 145, EndPos: 148, }, Value: "foo", @@ -1049,7 +1048,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 150, + StartPos: 149, EndPos: 162, }, ByRef: false, @@ -1058,7 +1057,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 150, + StartPos: 149, EndPos: 152, }, Parts: []node.Node{ @@ -1066,7 +1065,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 150, + StartPos: 149, EndPos: 152, }, Value: "bar", @@ -1077,14 +1076,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 154, + StartPos: 153, EndPos: 157, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 154, + StartPos: 153, EndPos: 157, }, Value: "bar", @@ -1094,14 +1093,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 159, + StartPos: 158, EndPos: 162, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 159, + StartPos: 158, EndPos: 162, }, Parts: []node.Node{ @@ -1109,7 +1108,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 159, + StartPos: 158, EndPos: 162, }, Value: "null", @@ -1122,7 +1121,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 165, + StartPos: 164, EndPos: 176, }, ByRef: true, @@ -1131,7 +1130,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 165, + StartPos: 164, EndPos: 167, }, Parts: []node.Node{ @@ -1139,7 +1138,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 165, + StartPos: 164, EndPos: 167, }, Value: "baz", @@ -1150,14 +1149,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 173, + StartPos: 172, EndPos: 176, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 173, + StartPos: 172, EndPos: 176, }, Value: "baz", @@ -1171,7 +1170,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 184, + StartPos: 183, EndPos: 246, }, PhpDocComment: "", @@ -1179,7 +1178,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 190, + StartPos: 189, EndPos: 192, }, Value: "foo", @@ -1189,16 +1188,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 195, + StartPos: 194, EndPos: 245, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", MethodName: &node.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 211, + StartPos: 210, EndPos: 213, }, Value: "foo", @@ -1208,7 +1207,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 195, + StartPos: 194, EndPos: 200, }, Value: "public", @@ -1219,7 +1218,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 215, + StartPos: 214, EndPos: 227, }, ByRef: false, @@ -1228,7 +1227,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 215, + StartPos: 214, EndPos: 217, }, Parts: []node.Node{ @@ -1236,7 +1235,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 215, + StartPos: 214, EndPos: 217, }, Value: "bar", @@ -1247,14 +1246,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 219, + StartPos: 218, EndPos: 222, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 219, + StartPos: 218, EndPos: 222, }, Value: "bar", @@ -1264,14 +1263,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 224, + StartPos: 223, EndPos: 227, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 224, + StartPos: 223, EndPos: 227, }, Parts: []node.Node{ @@ -1279,7 +1278,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 224, + StartPos: 223, EndPos: 227, }, Value: "null", @@ -1292,16 +1291,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 230, + StartPos: 229, EndPos: 241, }, - Variadic: true, ByRef: true, + Variadic: true, VariableType: &name.Name{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 230, + StartPos: 229, EndPos: 232, }, Parts: []node.Node{ @@ -1309,7 +1308,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 230, + StartPos: 229, EndPos: 232, }, Value: "baz", @@ -1320,14 +1319,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 238, + StartPos: 237, EndPos: 241, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 238, + StartPos: 237, EndPos: 241, }, Value: "baz", @@ -1339,7 +1338,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 244, + StartPos: 243, EndPos: 245, }, Stmts: []node.Node{}, @@ -1351,25 +1350,25 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 250, + StartPos: 249, EndPos: 290, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 250, + StartPos: 249, EndPos: 289, }, + ReturnsRef: false, Static: false, PhpDocComment: "", - ReturnsRef: false, Params: []node.Node{ &node.Parameter{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 259, + StartPos: 258, EndPos: 271, }, ByRef: false, @@ -1378,7 +1377,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 259, + StartPos: 258, EndPos: 261, }, Parts: []node.Node{ @@ -1386,7 +1385,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 259, + StartPos: 258, EndPos: 261, }, Value: "bar", @@ -1397,14 +1396,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 263, + StartPos: 262, EndPos: 266, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 263, + StartPos: 262, EndPos: 266, }, Value: "bar", @@ -1414,14 +1413,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 268, + StartPos: 267, EndPos: 271, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 268, + StartPos: 267, EndPos: 271, }, Parts: []node.Node{ @@ -1429,7 +1428,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 268, + StartPos: 267, EndPos: 271, }, Value: "null", @@ -1442,16 +1441,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 274, + StartPos: 273, EndPos: 285, }, - Variadic: true, ByRef: true, + Variadic: true, VariableType: &name.Name{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 274, + StartPos: 273, EndPos: 276, }, Parts: []node.Node{ @@ -1459,7 +1458,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 274, + StartPos: 273, EndPos: 276, }, Value: "baz", @@ -1470,14 +1469,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 282, + StartPos: 281, EndPos: 285, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 282, + StartPos: 281, EndPos: 285, }, Value: "baz", @@ -1492,34 +1491,34 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 294, + StartPos: 293, EndPos: 341, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 294, + StartPos: 293, EndPos: 340, }, - PhpDocComment: "", ReturnsRef: false, Static: true, + PhpDocComment: "", Params: []node.Node{ &node.Parameter{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 310, + StartPos: 309, EndPos: 322, }, - Variadic: false, ByRef: false, + Variadic: false, VariableType: &name.Name{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 310, + StartPos: 309, EndPos: 312, }, Parts: []node.Node{ @@ -1527,7 +1526,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 310, + StartPos: 309, EndPos: 312, }, Value: "bar", @@ -1538,14 +1537,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 314, + StartPos: 313, EndPos: 317, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 314, + StartPos: 313, EndPos: 317, }, Value: "bar", @@ -1555,14 +1554,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 319, + StartPos: 318, EndPos: 322, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 319, + StartPos: 318, EndPos: 322, }, Parts: []node.Node{ @@ -1570,7 +1569,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 319, + StartPos: 318, EndPos: 322, }, Value: "null", @@ -1583,7 +1582,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 325, + StartPos: 324, EndPos: 336, }, ByRef: true, @@ -1592,7 +1591,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 325, + StartPos: 324, EndPos: 327, }, Parts: []node.Node{ @@ -1600,7 +1599,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 325, + StartPos: 324, EndPos: 327, }, Value: "baz", @@ -1611,14 +1610,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 333, + StartPos: 332, EndPos: 336, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 333, + StartPos: 332, EndPos: 336, }, Value: "baz", @@ -1633,14 +1632,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 346, + StartPos: 345, EndPos: 365, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 346, + StartPos: 345, EndPos: 364, }, Value: "1234567890123456789", @@ -1650,14 +1649,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 369, + StartPos: 368, EndPos: 389, }, Expr: &scalar.Dnumber{ Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 369, + StartPos: 368, EndPos: 388, }, Value: "12345678901234567890", @@ -1667,14 +1666,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 393, + StartPos: 392, EndPos: 395, }, Expr: &scalar.Dnumber{ Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 393, + StartPos: 392, EndPos: 394, }, Value: "0.", @@ -1684,14 +1683,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 17, EndLine: 17, - StartPos: 399, + StartPos: 398, EndPos: 465, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 17, EndLine: 17, - StartPos: 399, + StartPos: 398, EndPos: 464, }, Value: "0b0111111111111111111111111111111111111111111111111111111111111111", @@ -1701,14 +1700,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 469, + StartPos: 468, EndPos: 535, }, Expr: &scalar.Dnumber{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 469, + StartPos: 468, EndPos: 534, }, Value: "0b1111111111111111111111111111111111111111111111111111111111111111", @@ -1718,14 +1717,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 539, + StartPos: 538, EndPos: 559, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 539, + StartPos: 538, EndPos: 558, }, Value: "0x007111111111111111", @@ -1735,14 +1734,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 563, + StartPos: 562, EndPos: 581, }, Expr: &scalar.Dnumber{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 563, + StartPos: 562, EndPos: 580, }, Value: "0x8111111111111111", @@ -1752,14 +1751,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 585, + StartPos: 584, EndPos: 594, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 585, + StartPos: 584, EndPos: 593, }, Value: "__CLASS__", @@ -1769,14 +1768,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 22, EndLine: 22, - StartPos: 598, + StartPos: 597, EndPos: 605, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 22, EndLine: 22, - StartPos: 598, + StartPos: 597, EndPos: 604, }, Value: "__DIR__", @@ -1786,14 +1785,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 23, EndLine: 23, - StartPos: 609, + StartPos: 608, EndPos: 617, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 23, EndLine: 23, - StartPos: 609, + StartPos: 608, EndPos: 616, }, Value: "__FILE__", @@ -1803,14 +1802,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 24, EndLine: 24, - StartPos: 621, + StartPos: 620, EndPos: 633, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 24, EndLine: 24, - StartPos: 621, + StartPos: 620, EndPos: 632, }, Value: "__FUNCTION__", @@ -1820,14 +1819,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 25, EndLine: 25, - StartPos: 637, + StartPos: 636, EndPos: 645, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 25, EndLine: 25, - StartPos: 637, + StartPos: 636, EndPos: 644, }, Value: "__LINE__", @@ -1837,14 +1836,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 26, EndLine: 26, - StartPos: 649, + StartPos: 648, EndPos: 662, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 26, EndLine: 26, - StartPos: 649, + StartPos: 648, EndPos: 661, }, Value: "__NAMESPACE__", @@ -1854,14 +1853,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 27, EndLine: 27, - StartPos: 666, + StartPos: 665, EndPos: 676, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 27, EndLine: 27, - StartPos: 666, + StartPos: 665, EndPos: 675, }, Value: "__METHOD__", @@ -1871,14 +1870,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 28, EndLine: 28, - StartPos: 680, + StartPos: 679, EndPos: 689, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 28, EndLine: 28, - StartPos: 680, + StartPos: 679, EndPos: 688, }, Value: "__TRAIT__", @@ -1888,14 +1887,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 694, + StartPos: 693, EndPos: 705, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 694, + StartPos: 693, EndPos: 704, }, Parts: []node.Node{ @@ -1903,7 +1902,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 695, + StartPos: 694, EndPos: 699, }, Value: "test ", @@ -1912,14 +1911,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 700, + StartPos: 699, EndPos: 703, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 700, + StartPos: 699, EndPos: 703, }, Value: "var", @@ -1932,14 +1931,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 709, + StartPos: 708, EndPos: 723, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 709, + StartPos: 708, EndPos: 722, }, Parts: []node.Node{ @@ -1947,7 +1946,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 710, + StartPos: 709, EndPos: 714, }, Value: "test ", @@ -1956,21 +1955,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 715, + StartPos: 714, EndPos: 721, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 715, + StartPos: 714, EndPos: 718, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 715, + StartPos: 714, EndPos: 718, }, Value: "var", @@ -1980,7 +1979,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 720, + StartPos: 719, EndPos: 720, }, Value: "1", @@ -1993,14 +1992,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 727, + StartPos: 726, EndPos: 780, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 727, + StartPos: 726, EndPos: 779, }, Parts: []node.Node{ @@ -2008,7 +2007,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 728, + StartPos: 727, EndPos: 732, }, Value: "test ", @@ -2017,21 +2016,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 733, + StartPos: 732, EndPos: 778, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 733, + StartPos: 732, EndPos: 736, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 733, + StartPos: 732, EndPos: 736, }, Value: "var", @@ -2041,7 +2040,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 738, + StartPos: 737, EndPos: 777, }, Value: "1234567890123456789012345678901234567890", @@ -2054,14 +2053,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 784, + StartPos: 783, EndPos: 800, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 784, + StartPos: 783, EndPos: 799, }, Parts: []node.Node{ @@ -2069,7 +2068,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 785, + StartPos: 784, EndPos: 789, }, Value: "test ", @@ -2078,21 +2077,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 790, + StartPos: 789, EndPos: 798, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 790, + StartPos: 789, EndPos: 793, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 790, + StartPos: 789, EndPos: 793, }, Value: "var", @@ -2102,7 +2101,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 795, + StartPos: 794, EndPos: 797, }, Value: "bar", @@ -2115,14 +2114,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 804, + StartPos: 803, EndPos: 821, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 804, + StartPos: 803, EndPos: 820, }, Parts: []node.Node{ @@ -2130,7 +2129,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 805, + StartPos: 804, EndPos: 809, }, Value: "test ", @@ -2139,21 +2138,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 810, + StartPos: 809, EndPos: 819, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 810, + StartPos: 809, EndPos: 813, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 810, + StartPos: 809, EndPos: 813, }, Value: "var", @@ -2163,14 +2162,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 815, + StartPos: 814, EndPos: 818, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 815, + StartPos: 814, EndPos: 818, }, Value: "bar", @@ -2184,14 +2183,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 825, + StartPos: 824, EndPos: 836, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 825, + StartPos: 824, EndPos: 835, }, Parts: []node.Node{ @@ -2199,14 +2198,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 826, + StartPos: 825, EndPos: 829, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 826, + StartPos: 825, EndPos: 829, }, Value: "foo", @@ -2216,7 +2215,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 830, + StartPos: 829, EndPos: 830, }, Value: " ", @@ -2225,14 +2224,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 831, + StartPos: 830, EndPos: 834, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 831, + StartPos: 830, EndPos: 834, }, Value: "bar", @@ -2245,14 +2244,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 840, + StartPos: 839, EndPos: 858, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 840, + StartPos: 839, EndPos: 857, }, Parts: []node.Node{ @@ -2260,7 +2259,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 841, + StartPos: 840, EndPos: 845, }, Value: "test ", @@ -2269,21 +2268,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 846, + StartPos: 845, EndPos: 854, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 846, + StartPos: 845, EndPos: 849, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 846, + StartPos: 845, EndPos: 849, }, Value: "foo", @@ -2293,7 +2292,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 852, + StartPos: 851, EndPos: 854, }, Value: "bar", @@ -2303,7 +2302,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 855, + StartPos: 854, EndPos: 856, }, Value: "()", @@ -2315,14 +2314,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 862, + StartPos: 861, EndPos: 875, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 862, + StartPos: 861, EndPos: 874, }, Parts: []node.Node{ @@ -2330,7 +2329,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 863, + StartPos: 862, EndPos: 867, }, Value: "test ", @@ -2339,14 +2338,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 868, + StartPos: 867, EndPos: 873, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 870, + StartPos: 869, EndPos: 872, }, Value: "foo", @@ -2359,14 +2358,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 879, + StartPos: 878, EndPos: 895, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 879, + StartPos: 878, EndPos: 894, }, Parts: []node.Node{ @@ -2374,7 +2373,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 880, + StartPos: 879, EndPos: 884, }, Value: "test ", @@ -2383,21 +2382,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 885, + StartPos: 884, EndPos: 893, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 887, + StartPos: 886, EndPos: 889, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 887, + StartPos: 886, EndPos: 889, }, Value: "foo", @@ -2407,7 +2406,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 891, + StartPos: 890, EndPos: 891, }, Value: "0", @@ -2420,14 +2419,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 899, + StartPos: 898, EndPos: 919, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 899, + StartPos: 898, EndPos: 918, }, Parts: []node.Node{ @@ -2435,7 +2434,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 900, + StartPos: 899, EndPos: 904, }, Value: "test ", @@ -2444,21 +2443,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 906, + StartPos: 905, EndPos: 916, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 906, + StartPos: 905, EndPos: 909, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 906, + StartPos: 905, EndPos: 909, }, Value: "foo", @@ -2468,7 +2467,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 912, + StartPos: 911, EndPos: 914, }, Value: "bar", @@ -2477,7 +2476,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 915, + StartPos: 914, EndPos: 916, }, }, @@ -2489,21 +2488,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 42, - StartPos: 924, + StartPos: 923, EndPos: 941, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 928, + StartPos: 927, EndPos: 929, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 928, + StartPos: 927, EndPos: 929, }, Value: "a", @@ -2523,21 +2522,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 45, - StartPos: 945, + StartPos: 944, EndPos: 977, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 949, + StartPos: 948, EndPos: 950, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 949, + StartPos: 948, EndPos: 950, }, Value: "a", @@ -2557,21 +2556,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: -1, - StartPos: 957, + StartPos: 956, EndPos: -1, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 965, + StartPos: 964, EndPos: 966, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 965, + StartPos: 964, EndPos: 966, }, Value: "b", @@ -2593,21 +2592,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 48, - StartPos: 981, + StartPos: 980, EndPos: 1006, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 985, + StartPos: 984, EndPos: 986, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 985, + StartPos: 984, EndPos: 986, }, Value: "a", @@ -2626,7 +2625,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: -1, - StartPos: 993, + StartPos: 992, EndPos: -1, }, Stmt: &stmt.StmtList{ @@ -2644,21 +2643,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 53, - StartPos: 1010, + StartPos: 1009, EndPos: 1065, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1014, + StartPos: 1013, EndPos: 1015, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1014, + StartPos: 1013, EndPos: 1015, }, Value: "a", @@ -2678,21 +2677,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: -1, - StartPos: 1022, + StartPos: 1021, EndPos: -1, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1030, + StartPos: 1029, EndPos: 1031, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1030, + StartPos: 1029, EndPos: 1031, }, Value: "b", @@ -2712,21 +2711,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: -1, - StartPos: 1037, + StartPos: 1036, EndPos: -1, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1045, + StartPos: 1044, EndPos: 1046, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1045, + StartPos: 1044, EndPos: 1046, }, Value: "c", @@ -2747,7 +2746,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 52, EndLine: -1, - StartPos: 1052, + StartPos: 1051, EndPos: -1, }, Stmt: &stmt.StmtList{ @@ -2765,14 +2764,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1070, + StartPos: 1069, EndPos: 1089, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1077, + StartPos: 1076, EndPos: 1077, }, Value: "1", @@ -2781,7 +2780,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1080, + StartPos: 1079, EndPos: 1089, }, Stmts: []node.Node{ @@ -2789,7 +2788,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1082, + StartPos: 1081, EndPos: 1087, }, }, @@ -2800,14 +2799,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1093, + StartPos: 1092, EndPos: 1114, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1100, + StartPos: 1099, EndPos: 1100, }, Value: "1", @@ -2816,7 +2815,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1103, + StartPos: 1102, EndPos: 1114, }, Stmts: []node.Node{ @@ -2824,14 +2823,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1105, + StartPos: 1104, EndPos: 1112, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1111, + StartPos: 1110, EndPos: 1111, }, Value: "2", @@ -2844,14 +2843,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1118, + StartPos: 1117, EndPos: 1148, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1125, + StartPos: 1124, EndPos: 1125, }, Value: "1", @@ -2860,7 +2859,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1130, + StartPos: 1129, EndPos: 1138, }, Stmts: []node.Node{ @@ -2868,14 +2867,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1130, + StartPos: 1129, EndPos: 1138, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1136, + StartPos: 1135, EndPos: 1136, }, Value: "3", @@ -2888,7 +2887,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1152, + StartPos: 1151, EndPos: 1187, }, PhpDocComment: "", @@ -2896,7 +2895,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1158, + StartPos: 1157, EndPos: 1160, }, Value: "foo", @@ -2906,7 +2905,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1163, + StartPos: 1162, EndPos: 1185, }, Consts: []node.Node{ @@ -2914,7 +2913,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1169, + StartPos: 1168, EndPos: 1175, }, PhpDocComment: "", @@ -2922,7 +2921,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1169, + StartPos: 1168, EndPos: 1171, }, Value: "FOO", @@ -2931,7 +2930,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1175, + StartPos: 1174, EndPos: 1175, }, Value: "1", @@ -2941,7 +2940,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1178, + StartPos: 1177, EndPos: 1184, }, PhpDocComment: "", @@ -2949,7 +2948,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1178, + StartPos: 1177, EndPos: 1180, }, Value: "BAR", @@ -2958,7 +2957,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1184, + StartPos: 1183, EndPos: 1184, }, Value: "2", @@ -2972,7 +2971,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1191, + StartPos: 1190, EndPos: 1220, }, PhpDocComment: "", @@ -2980,7 +2979,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1197, + StartPos: 1196, EndPos: 1199, }, Value: "foo", @@ -2990,7 +2989,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1202, + StartPos: 1201, EndPos: 1218, }, ReturnsRef: false, @@ -2999,7 +2998,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1211, + StartPos: 1210, EndPos: 1213, }, Value: "bar", @@ -3008,7 +3007,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1217, + StartPos: 1216, EndPos: 1218, }, Stmts: []node.Node{}, @@ -3020,7 +3019,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1224, + StartPos: 1223, EndPos: 1268, }, PhpDocComment: "", @@ -3028,7 +3027,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1230, + StartPos: 1229, EndPos: 1232, }, Value: "foo", @@ -3038,7 +3037,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1235, + StartPos: 1234, EndPos: 1266, }, ReturnsRef: true, @@ -3047,7 +3046,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1259, + StartPos: 1258, EndPos: 1261, }, Value: "bar", @@ -3057,7 +3056,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1235, + StartPos: 1234, EndPos: 1240, }, Value: "public", @@ -3066,7 +3065,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1242, + StartPos: 1241, EndPos: 1247, }, Value: "static", @@ -3076,7 +3075,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1265, + StartPos: 1264, EndPos: 1266, }, Stmts: []node.Node{}, @@ -3088,7 +3087,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1272, + StartPos: 1271, EndPos: 1343, }, PhpDocComment: "", @@ -3096,7 +3095,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1278, + StartPos: 1277, EndPos: 1280, }, Value: "foo", @@ -3106,7 +3105,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1283, + StartPos: 1282, EndPos: 1313, }, ReturnsRef: false, @@ -3115,7 +3114,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1306, + StartPos: 1305, EndPos: 1308, }, Value: "bar", @@ -3125,7 +3124,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1283, + StartPos: 1282, EndPos: 1287, }, Value: "final", @@ -3134,7 +3133,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1289, + StartPos: 1288, EndPos: 1295, }, Value: "private", @@ -3144,7 +3143,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1312, + StartPos: 1311, EndPos: 1313, }, Stmts: []node.Node{}, @@ -3154,7 +3153,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1315, + StartPos: 1314, EndPos: 1341, }, ReturnsRef: false, @@ -3163,7 +3162,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1334, + StartPos: 1333, EndPos: 1336, }, Value: "baz", @@ -3173,7 +3172,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1315, + StartPos: 1314, EndPos: 1323, }, Value: "protected", @@ -3183,7 +3182,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1340, + StartPos: 1339, EndPos: 1341, }, Stmts: []node.Node{}, @@ -3195,7 +3194,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1347, + StartPos: 1346, EndPos: 1399, }, PhpDocComment: "", @@ -3203,7 +3202,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1362, + StartPos: 1361, EndPos: 1364, }, Value: "foo", @@ -3213,7 +3212,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1347, + StartPos: 1346, EndPos: 1354, }, Value: "abstract", @@ -3224,7 +3223,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1367, + StartPos: 1366, EndPos: 1397, }, ReturnsRef: false, @@ -3233,7 +3232,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1392, + StartPos: 1391, EndPos: 1394, }, Value: "bar", @@ -3243,7 +3242,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1367, + StartPos: 1366, EndPos: 1374, }, Value: "abstract", @@ -3252,7 +3251,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1376, + StartPos: 1375, EndPos: 1381, }, Value: "public", @@ -3262,7 +3261,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1397, + StartPos: 1396, EndPos: 1397, }, }, @@ -3273,7 +3272,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1403, + StartPos: 1402, EndPos: 1433, }, PhpDocComment: "", @@ -3281,7 +3280,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1415, + StartPos: 1414, EndPos: 1417, }, Value: "foo", @@ -3291,7 +3290,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1403, + StartPos: 1402, EndPos: 1407, }, Value: "final", @@ -3301,14 +3300,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1419, + StartPos: 1418, EndPos: 1429, }, ClassName: &name.Name{ Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1427, + StartPos: 1426, EndPos: 1429, }, Parts: []node.Node{ @@ -3316,7 +3315,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1427, + StartPos: 1426, EndPos: 1429, }, Value: "bar", @@ -3330,7 +3329,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1437, + StartPos: 1436, EndPos: 1470, }, PhpDocComment: "", @@ -3338,7 +3337,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1449, + StartPos: 1448, EndPos: 1451, }, Value: "foo", @@ -3348,7 +3347,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1437, + StartPos: 1436, EndPos: 1441, }, Value: "final", @@ -3358,7 +3357,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1453, + StartPos: 1452, EndPos: 1466, }, InterfaceNames: []node.Node{ @@ -3366,7 +3365,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1464, + StartPos: 1463, EndPos: 1466, }, Parts: []node.Node{ @@ -3374,7 +3373,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1464, + StartPos: 1463, EndPos: 1466, }, Value: "bar", @@ -3389,7 +3388,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1474, + StartPos: 1473, EndPos: 1512, }, PhpDocComment: "", @@ -3397,7 +3396,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1486, + StartPos: 1485, EndPos: 1488, }, Value: "foo", @@ -3407,7 +3406,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1474, + StartPos: 1473, EndPos: 1478, }, Value: "final", @@ -3417,7 +3416,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1490, + StartPos: 1489, EndPos: 1508, }, InterfaceNames: []node.Node{ @@ -3425,7 +3424,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1501, + StartPos: 1500, EndPos: 1503, }, Parts: []node.Node{ @@ -3433,7 +3432,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1501, + StartPos: 1500, EndPos: 1503, }, Value: "bar", @@ -3444,7 +3443,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1506, + StartPos: 1505, EndPos: 1508, }, Parts: []node.Node{ @@ -3452,7 +3451,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1506, + StartPos: 1505, EndPos: 1508, }, Value: "baz", @@ -3467,7 +3466,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1517, + StartPos: 1516, EndPos: 1539, }, Consts: []node.Node{ @@ -3475,7 +3474,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1523, + StartPos: 1522, EndPos: 1529, }, PhpDocComment: "", @@ -3483,7 +3482,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1523, + StartPos: 1522, EndPos: 1525, }, Value: "FOO", @@ -3492,7 +3491,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1529, + StartPos: 1528, EndPos: 1529, }, Value: "1", @@ -3502,7 +3501,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1532, + StartPos: 1531, EndPos: 1538, }, PhpDocComment: "", @@ -3510,7 +3509,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1532, + StartPos: 1531, EndPos: 1534, }, Value: "BAR", @@ -3519,7 +3518,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1538, + StartPos: 1537, EndPos: 1538, }, Value: "2", @@ -3531,14 +3530,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1543, + StartPos: 1542, EndPos: 1565, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1550, + StartPos: 1549, EndPos: 1550, }, Value: "1", @@ -3547,7 +3546,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1553, + StartPos: 1552, EndPos: 1565, }, Stmts: []node.Node{ @@ -3555,7 +3554,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1555, + StartPos: 1554, EndPos: 1563, }, }, @@ -3566,14 +3565,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1569, + StartPos: 1568, EndPos: 1593, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1576, + StartPos: 1575, EndPos: 1576, }, Value: "1", @@ -3582,7 +3581,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1579, + StartPos: 1578, EndPos: 1593, }, Stmts: []node.Node{ @@ -3590,14 +3589,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1581, + StartPos: 1580, EndPos: 1591, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1590, + StartPos: 1589, EndPos: 1590, }, Value: "2", @@ -3610,14 +3609,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1597, + StartPos: 1596, EndPos: 1622, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1604, + StartPos: 1603, EndPos: 1604, }, Value: "1", @@ -3626,7 +3625,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1607, + StartPos: 1606, EndPos: 1622, }, Stmts: []node.Node{ @@ -3634,14 +3633,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1609, + StartPos: 1608, EndPos: 1620, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1618, + StartPos: 1617, EndPos: 1618, }, Value: "3", @@ -3654,15 +3653,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1626, + StartPos: 1625, EndPos: 1642, }, + Alt: false, Consts: []node.Node{ &stmt.Constant{ Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1634, + StartPos: 1633, EndPos: 1640, }, PhpDocComment: "", @@ -3670,7 +3670,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1634, + StartPos: 1633, EndPos: 1638, }, Value: "ticks", @@ -3679,7 +3679,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1640, + StartPos: 1639, EndPos: 1640, }, Value: "1", @@ -3690,7 +3690,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1642, + StartPos: 1641, EndPos: 1642, }, }, @@ -3699,15 +3699,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1646, + StartPos: 1645, EndPos: 1680, }, + Alt: false, Consts: []node.Node{ &stmt.Constant{ Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1654, + StartPos: 1653, EndPos: 1660, }, PhpDocComment: "", @@ -3715,7 +3716,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1654, + StartPos: 1653, EndPos: 1658, }, Value: "ticks", @@ -3724,7 +3725,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1660, + StartPos: 1659, EndPos: 1660, }, Value: "1", @@ -3734,7 +3735,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1663, + StartPos: 1662, EndPos: 1676, }, PhpDocComment: "", @@ -3742,7 +3743,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1663, + StartPos: 1662, EndPos: 1674, }, Value: "strict_types", @@ -3751,7 +3752,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1676, + StartPos: 1675, EndPos: 1676, }, Value: "1", @@ -3762,7 +3763,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1679, + StartPos: 1678, EndPos: 1680, }, Stmts: []node.Node{}, @@ -3772,7 +3773,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1684, + StartPos: 1683, EndPos: 1712, }, Alt: true, @@ -3781,7 +3782,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1692, + StartPos: 1691, EndPos: 1698, }, PhpDocComment: "", @@ -3789,7 +3790,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1692, + StartPos: 1691, EndPos: 1696, }, Value: "ticks", @@ -3798,7 +3799,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1698, + StartPos: 1697, EndPos: 1698, }, Value: "1", @@ -3819,14 +3820,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1716, + StartPos: 1715, EndPos: 1730, }, Stmt: &stmt.StmtList{ Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1719, + StartPos: 1718, EndPos: 1720, }, Stmts: []node.Node{}, @@ -3835,7 +3836,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1728, + StartPos: 1727, EndPos: 1728, }, Value: "1", @@ -3845,7 +3846,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1734, + StartPos: 1733, EndPos: 1744, }, Exprs: []node.Node{ @@ -3853,14 +3854,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1739, + StartPos: 1738, EndPos: 1740, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1739, + StartPos: 1738, EndPos: 1740, }, Value: "a", @@ -3870,7 +3871,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1743, + StartPos: 1742, EndPos: 1743, }, Value: "1", @@ -3881,7 +3882,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1748, + StartPos: 1747, EndPos: 1756, }, Exprs: []node.Node{ @@ -3889,14 +3890,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1753, + StartPos: 1752, EndPos: 1754, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1753, + StartPos: 1752, EndPos: 1754, }, Value: "a", @@ -3908,7 +3909,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1760, + StartPos: 1759, EndPos: 1794, }, Init: []node.Node{ @@ -3916,21 +3917,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1764, + StartPos: 1763, EndPos: 1769, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1764, + StartPos: 1763, EndPos: 1765, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1764, + StartPos: 1763, EndPos: 1765, }, Value: "i", @@ -3940,7 +3941,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1769, + StartPos: 1768, EndPos: 1769, }, Value: "0", @@ -3952,21 +3953,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1772, + StartPos: 1771, EndPos: 1778, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1772, + StartPos: 1771, EndPos: 1773, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1772, + StartPos: 1771, EndPos: 1773, }, Value: "i", @@ -3976,7 +3977,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1777, + StartPos: 1776, EndPos: 1778, }, Value: "10", @@ -3988,21 +3989,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1781, + StartPos: 1780, EndPos: 1784, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1781, + StartPos: 1780, EndPos: 1782, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1781, + StartPos: 1780, EndPos: 1782, }, Value: "i", @@ -4013,21 +4014,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1787, + StartPos: 1786, EndPos: 1790, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1787, + StartPos: 1786, EndPos: 1788, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1787, + StartPos: 1786, EndPos: 1788, }, Value: "i", @@ -4039,7 +4040,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1793, + StartPos: 1792, EndPos: 1794, }, Stmts: []node.Node{}, @@ -4049,7 +4050,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1798, + StartPos: 1797, EndPos: 1827, }, Cond: []node.Node{ @@ -4057,21 +4058,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1804, + StartPos: 1803, EndPos: 1810, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1804, + StartPos: 1803, EndPos: 1805, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1804, + StartPos: 1803, EndPos: 1805, }, Value: "i", @@ -4081,7 +4082,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1809, + StartPos: 1808, EndPos: 1810, }, Value: "10", @@ -4093,21 +4094,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1813, + StartPos: 1812, EndPos: 1816, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1813, + StartPos: 1812, EndPos: 1814, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1813, + StartPos: 1812, EndPos: 1814, }, Value: "i", @@ -4129,21 +4130,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1831, + StartPos: 1830, EndPos: 1851, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1840, + StartPos: 1839, EndPos: 1841, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1840, + StartPos: 1839, EndPos: 1841, }, Value: "a", @@ -4153,14 +4154,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1846, + StartPos: 1845, EndPos: 1847, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1846, + StartPos: 1845, EndPos: 1847, }, Value: "v", @@ -4170,7 +4171,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1850, + StartPos: 1849, EndPos: 1851, }, Stmts: []node.Node{}, @@ -4180,14 +4181,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1855, + StartPos: 1854, EndPos: 1875, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1864, + StartPos: 1863, EndPos: 1865, }, Items: []node.Node{}, @@ -4196,14 +4197,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1870, + StartPos: 1869, EndPos: 1871, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1870, + StartPos: 1869, EndPos: 1871, }, Value: "v", @@ -4213,7 +4214,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1874, + StartPos: 1873, EndPos: 1875, }, Stmts: []node.Node{}, @@ -4223,21 +4224,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1879, + StartPos: 1878, EndPos: 1910, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1888, + StartPos: 1887, EndPos: 1889, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1888, + StartPos: 1887, EndPos: 1889, }, Value: "a", @@ -4247,14 +4248,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1894, + StartPos: 1893, EndPos: 1895, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1894, + StartPos: 1893, EndPos: 1895, }, Value: "v", @@ -4274,21 +4275,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1914, + StartPos: 1913, EndPos: 1940, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1923, + StartPos: 1922, EndPos: 1924, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1923, + StartPos: 1922, EndPos: 1924, }, Value: "a", @@ -4298,14 +4299,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1929, + StartPos: 1928, EndPos: 1930, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1929, + StartPos: 1928, EndPos: 1930, }, Value: "k", @@ -4315,14 +4316,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1935, + StartPos: 1934, EndPos: 1936, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1935, + StartPos: 1934, EndPos: 1936, }, Value: "v", @@ -4332,7 +4333,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1939, + StartPos: 1938, EndPos: 1940, }, Stmts: []node.Node{}, @@ -4342,14 +4343,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1944, + StartPos: 1943, EndPos: 1970, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1953, + StartPos: 1952, EndPos: 1954, }, Items: []node.Node{}, @@ -4358,14 +4359,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1959, + StartPos: 1958, EndPos: 1960, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1959, + StartPos: 1958, EndPos: 1960, }, Value: "k", @@ -4375,14 +4376,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1965, + StartPos: 1964, EndPos: 1966, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1965, + StartPos: 1964, EndPos: 1966, }, Value: "v", @@ -4392,7 +4393,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1969, + StartPos: 1968, EndPos: 1970, }, Stmts: []node.Node{}, @@ -4402,21 +4403,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1974, + StartPos: 1973, EndPos: 2001, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1983, + StartPos: 1982, EndPos: 1984, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1983, + StartPos: 1982, EndPos: 1984, }, Value: "a", @@ -4426,14 +4427,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1989, + StartPos: 1988, EndPos: 1990, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1989, + StartPos: 1988, EndPos: 1990, }, Value: "k", @@ -4443,21 +4444,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1995, + StartPos: 1994, EndPos: 1997, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1996, + StartPos: 1995, EndPos: 1997, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1996, + StartPos: 1995, EndPos: 1997, }, Value: "v", @@ -4468,7 +4469,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 2000, + StartPos: 1999, EndPos: 2001, }, Stmts: []node.Node{}, @@ -4478,21 +4479,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2005, + StartPos: 2004, EndPos: 2037, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2014, + StartPos: 2013, EndPos: 2015, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2014, + StartPos: 2013, EndPos: 2015, }, Value: "a", @@ -4502,14 +4503,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2020, + StartPos: 2019, EndPos: 2021, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2020, + StartPos: 2019, EndPos: 2021, }, Value: "k", @@ -4519,7 +4520,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2026, + StartPos: 2025, EndPos: 2033, }, Items: []node.Node{ @@ -4527,21 +4528,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2031, + StartPos: 2030, EndPos: 2032, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2031, + StartPos: 2030, EndPos: 2032, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2031, + StartPos: 2030, EndPos: 2032, }, Value: "v", @@ -4554,7 +4555,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2036, + StartPos: 2035, EndPos: 2037, }, Stmts: []node.Node{}, @@ -4564,7 +4565,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 2041, + StartPos: 2040, EndPos: 2057, }, ReturnsRef: false, @@ -4573,7 +4574,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 2050, + StartPos: 2049, EndPos: 2052, }, Value: "foo", @@ -4584,16 +4585,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 88, EndLine: 92, - StartPos: 2062, + StartPos: 2061, EndPos: 2132, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 88, EndLine: 88, - StartPos: 2071, + StartPos: 2070, EndPos: 2073, }, Value: "foo", @@ -4603,16 +4604,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2082, + StartPos: 2081, EndPos: 2098, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2091, + StartPos: 2090, EndPos: 2093, }, Value: "bar", @@ -4623,7 +4624,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2103, + StartPos: 2102, EndPos: 2114, }, PhpDocComment: "", @@ -4631,7 +4632,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2109, + StartPos: 2108, EndPos: 2111, }, Value: "Baz", @@ -4642,21 +4643,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2119, + StartPos: 2118, EndPos: 2128, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2126, + StartPos: 2125, EndPos: 2127, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2126, + StartPos: 2125, EndPos: 2127, }, Value: "a", @@ -4669,7 +4670,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2139, + StartPos: 2138, EndPos: 2183, }, ReturnsRef: false, @@ -4678,7 +4679,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2148, + StartPos: 2147, EndPos: 2150, }, Value: "foo", @@ -4688,16 +4689,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2152, + StartPos: 2151, EndPos: 2159, }, - ByRef: false, Variadic: false, + ByRef: false, VariableType: &node.Identifier{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2152, + StartPos: 2151, EndPos: 2156, }, Value: "array", @@ -4706,14 +4707,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2158, + StartPos: 2157, EndPos: 2159, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2158, + StartPos: 2157, EndPos: 2159, }, Value: "a", @@ -4724,7 +4725,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2162, + StartPos: 2161, EndPos: 2172, }, ByRef: false, @@ -4733,7 +4734,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2162, + StartPos: 2161, EndPos: 2169, }, Value: "callable", @@ -4742,14 +4743,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2171, + StartPos: 2170, EndPos: 2172, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2171, + StartPos: 2170, EndPos: 2172, }, Value: "b", @@ -4762,7 +4763,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2176, + StartPos: 2175, EndPos: 2182, }, }, @@ -4772,7 +4773,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2187, + StartPos: 2186, EndPos: 2213, }, ReturnsRef: true, @@ -4781,7 +4782,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2197, + StartPos: 2196, EndPos: 2199, }, Value: "foo", @@ -4791,14 +4792,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2204, + StartPos: 2203, EndPos: 2212, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2211, + StartPos: 2210, EndPos: 2211, }, Value: "1", @@ -4810,16 +4811,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2217, + StartPos: 2216, EndPos: 2234, }, - PhpDocComment: "", ReturnsRef: true, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2227, + StartPos: 2226, EndPos: 2229, }, Value: "foo", @@ -4830,7 +4831,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2238, + StartPos: 2237, EndPos: 2266, }, Vars: []node.Node{ @@ -4838,14 +4839,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2245, + StartPos: 2244, EndPos: 2246, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2245, + StartPos: 2244, EndPos: 2246, }, Value: "a", @@ -4855,14 +4856,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2249, + StartPos: 2248, EndPos: 2250, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2249, + StartPos: 2248, EndPos: 2250, }, Value: "b", @@ -4872,21 +4873,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2253, + StartPos: 2252, EndPos: 2255, }, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2254, + StartPos: 2253, EndPos: 2255, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2254, + StartPos: 2253, EndPos: 2255, }, Value: "c", @@ -4897,21 +4898,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2258, + StartPos: 2257, EndPos: 2265, }, VarName: &expr.FunctionCall{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2260, + StartPos: 2259, EndPos: 2264, }, Function: &name.Name{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2260, + StartPos: 2259, EndPos: 2262, }, Parts: []node.Node{ @@ -4919,7 +4920,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2260, + StartPos: 2259, EndPos: 2262, }, Value: "foo", @@ -4930,7 +4931,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2263, + StartPos: 2262, EndPos: 2264, }, }, @@ -4942,14 +4943,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2270, + StartPos: 2269, EndPos: 2271, }, LabelName: &node.Identifier{ Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2270, + StartPos: 2269, EndPos: 2270, }, Value: "a", @@ -4959,14 +4960,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 99, EndLine: 99, - StartPos: 2276, + StartPos: 2275, EndPos: 2282, }, Label: &node.Identifier{ Position: &position.Position{ StartLine: 99, EndLine: 99, - StartPos: 2281, + StartPos: 2280, EndPos: 2281, }, Value: "a", @@ -4976,21 +4977,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2286, + StartPos: 2285, EndPos: 2295, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2290, + StartPos: 2289, EndPos: 2291, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2290, + StartPos: 2289, EndPos: 2291, }, Value: "a", @@ -5000,7 +5001,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2294, + StartPos: 2293, EndPos: 2295, }, Stmts: []node.Node{}, @@ -5010,21 +5011,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2299, + StartPos: 2298, EndPos: 2323, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2303, + StartPos: 2302, EndPos: 2304, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2303, + StartPos: 2302, EndPos: 2304, }, Value: "a", @@ -5034,7 +5035,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2307, + StartPos: 2306, EndPos: 2308, }, Stmts: []node.Node{}, @@ -5044,21 +5045,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2310, + StartPos: 2309, EndPos: 2323, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2318, + StartPos: 2317, EndPos: 2319, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2318, + StartPos: 2317, EndPos: 2319, }, Value: "b", @@ -5068,7 +5069,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2322, + StartPos: 2321, EndPos: 2323, }, Stmts: []node.Node{}, @@ -5080,21 +5081,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2327, + StartPos: 2326, EndPos: 2344, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2331, + StartPos: 2330, EndPos: 2332, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2331, + StartPos: 2330, EndPos: 2332, }, Value: "a", @@ -5104,7 +5105,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2335, + StartPos: 2334, EndPos: 2336, }, Stmts: []node.Node{}, @@ -5113,14 +5114,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2338, + StartPos: 2337, EndPos: 2344, }, Stmt: &stmt.StmtList{ Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2343, + StartPos: 2342, EndPos: 2344, }, Stmts: []node.Node{}, @@ -5131,21 +5132,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2348, + StartPos: 2347, EndPos: 2395, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2352, + StartPos: 2351, EndPos: 2353, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2352, + StartPos: 2351, EndPos: 2353, }, Value: "a", @@ -5155,7 +5156,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2356, + StartPos: 2355, EndPos: 2357, }, Stmts: []node.Node{}, @@ -5165,21 +5166,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2359, + StartPos: 2358, EndPos: 2372, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2367, + StartPos: 2366, EndPos: 2368, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2367, + StartPos: 2366, EndPos: 2368, }, Value: "b", @@ -5189,7 +5190,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2371, + StartPos: 2370, EndPos: 2372, }, Stmts: []node.Node{}, @@ -5199,21 +5200,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2374, + StartPos: 2373, EndPos: 2387, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2382, + StartPos: 2381, EndPos: 2383, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2382, + StartPos: 2381, EndPos: 2383, }, Value: "c", @@ -5223,7 +5224,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2386, + StartPos: 2385, EndPos: 2387, }, Stmts: []node.Node{}, @@ -5234,14 +5235,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2389, + StartPos: 2388, EndPos: 2395, }, Stmt: &stmt.StmtList{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2394, + StartPos: 2393, EndPos: 2395, }, Stmts: []node.Node{}, @@ -5252,21 +5253,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2399, + StartPos: 2398, EndPos: 2447, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2403, + StartPos: 2402, EndPos: 2404, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2403, + StartPos: 2402, EndPos: 2404, }, Value: "a", @@ -5276,7 +5277,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2407, + StartPos: 2406, EndPos: 2408, }, Stmts: []node.Node{}, @@ -5286,21 +5287,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2410, + StartPos: 2409, EndPos: 2423, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2418, + StartPos: 2417, EndPos: 2419, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2418, + StartPos: 2417, EndPos: 2419, }, Value: "b", @@ -5310,7 +5311,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2422, + StartPos: 2421, EndPos: 2423, }, Stmts: []node.Node{}, @@ -5321,28 +5322,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2425, + StartPos: 2424, EndPos: 2447, }, Stmt: &stmt.If{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2430, + StartPos: 2429, EndPos: 2447, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2434, + StartPos: 2433, EndPos: 2435, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2434, + StartPos: 2433, EndPos: 2435, }, Value: "c", @@ -5352,7 +5353,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2438, + StartPos: 2437, EndPos: 2439, }, Stmts: []node.Node{}, @@ -5361,14 +5362,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2441, + StartPos: 2440, EndPos: 2447, }, Stmt: &stmt.StmtList{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2446, + StartPos: 2445, EndPos: 2447, }, Stmts: []node.Node{}, @@ -5381,7 +5382,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 105, EndLine: 105, - StartPos: 2451, + StartPos: 2450, EndPos: 2452, }, }, @@ -5389,16 +5390,16 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 105, EndLine: 105, - StartPos: 2454, + StartPos: 2452, EndPos: 2465, }, - Value: "
", + Value: "
", }, &stmt.Interface{ Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2471, + StartPos: 2470, EndPos: 2486, }, PhpDocComment: "", @@ -5406,7 +5407,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2481, + StartPos: 2480, EndPos: 2483, }, Value: "Foo", @@ -5417,7 +5418,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2490, + StartPos: 2489, EndPos: 2517, }, PhpDocComment: "", @@ -5425,7 +5426,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2500, + StartPos: 2499, EndPos: 2502, }, Value: "Foo", @@ -5434,7 +5435,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2504, + StartPos: 2503, EndPos: 2514, }, InterfaceNames: []node.Node{ @@ -5442,7 +5443,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2512, + StartPos: 2511, EndPos: 2514, }, Parts: []node.Node{ @@ -5450,7 +5451,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2512, + StartPos: 2511, EndPos: 2514, }, Value: "Bar", @@ -5465,7 +5466,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2521, + StartPos: 2520, EndPos: 2553, }, PhpDocComment: "", @@ -5473,7 +5474,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2531, + StartPos: 2530, EndPos: 2533, }, Value: "Foo", @@ -5482,7 +5483,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2535, + StartPos: 2534, EndPos: 2550, }, InterfaceNames: []node.Node{ @@ -5490,7 +5491,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2543, + StartPos: 2542, EndPos: 2545, }, Parts: []node.Node{ @@ -5498,7 +5499,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2543, + StartPos: 2542, EndPos: 2545, }, Value: "Bar", @@ -5509,7 +5510,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2548, + StartPos: 2547, EndPos: 2550, }, Parts: []node.Node{ @@ -5517,7 +5518,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2548, + StartPos: 2547, EndPos: 2550, }, Value: "Baz", @@ -5532,14 +5533,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2557, + StartPos: 2556, EndPos: 2570, }, NamespaceName: &name.Name{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2567, + StartPos: 2566, EndPos: 2569, }, Parts: []node.Node{ @@ -5547,7 +5548,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2567, + StartPos: 2566, EndPos: 2569, }, Value: "Foo", @@ -5559,14 +5560,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2574, + StartPos: 2573, EndPos: 2593, }, NamespaceName: &name.Name{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2584, + StartPos: 2583, EndPos: 2590, }, Parts: []node.Node{ @@ -5574,7 +5575,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2584, + StartPos: 2583, EndPos: 2586, }, Value: "Foo", @@ -5583,7 +5584,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2588, + StartPos: 2587, EndPos: 2590, }, Value: "Bar", @@ -5596,7 +5597,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 111, EndLine: 111, - StartPos: 2597, + StartPos: 2596, EndPos: 2608, }, Stmts: []node.Node{}, @@ -5605,7 +5606,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2612, + StartPos: 2611, EndPos: 2630, }, PhpDocComment: "", @@ -5613,7 +5614,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2618, + StartPos: 2617, EndPos: 2620, }, Value: "foo", @@ -5623,7 +5624,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2623, + StartPos: 2622, EndPos: 2629, }, Modifiers: []node.Node{ @@ -5631,7 +5632,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2623, + StartPos: 2622, EndPos: 2625, }, Value: "var", @@ -5642,7 +5643,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2627, + StartPos: 2626, EndPos: 2628, }, PhpDocComment: "", @@ -5650,14 +5651,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2627, + StartPos: 2626, EndPos: 2628, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2627, + StartPos: 2626, EndPos: 2628, }, Value: "a", @@ -5672,7 +5673,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2634, + StartPos: 2633, EndPos: 2670, }, PhpDocComment: "", @@ -5680,7 +5681,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2640, + StartPos: 2639, EndPos: 2642, }, Value: "foo", @@ -5690,7 +5691,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2645, + StartPos: 2644, EndPos: 2669, }, Modifiers: []node.Node{ @@ -5698,7 +5699,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2645, + StartPos: 2644, EndPos: 2650, }, Value: "public", @@ -5707,7 +5708,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2652, + StartPos: 2651, EndPos: 2657, }, Value: "static", @@ -5718,7 +5719,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2659, + StartPos: 2658, EndPos: 2660, }, PhpDocComment: "", @@ -5726,14 +5727,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2659, + StartPos: 2658, EndPos: 2660, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2659, + StartPos: 2658, EndPos: 2660, }, Value: "a", @@ -5744,7 +5745,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2663, + StartPos: 2662, EndPos: 2668, }, PhpDocComment: "", @@ -5752,14 +5753,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2663, + StartPos: 2662, EndPos: 2664, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2663, + StartPos: 2662, EndPos: 2664, }, Value: "b", @@ -5769,7 +5770,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2668, + StartPos: 2667, EndPos: 2668, }, Value: "1", @@ -5783,7 +5784,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2674, + StartPos: 2673, EndPos: 2710, }, PhpDocComment: "", @@ -5791,7 +5792,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2680, + StartPos: 2679, EndPos: 2682, }, Value: "foo", @@ -5801,7 +5802,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2685, + StartPos: 2684, EndPos: 2709, }, Modifiers: []node.Node{ @@ -5809,7 +5810,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2685, + StartPos: 2684, EndPos: 2690, }, Value: "public", @@ -5818,7 +5819,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2692, + StartPos: 2691, EndPos: 2697, }, Value: "static", @@ -5829,7 +5830,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2699, + StartPos: 2698, EndPos: 2704, }, PhpDocComment: "", @@ -5837,14 +5838,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2699, + StartPos: 2698, EndPos: 2700, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2699, + StartPos: 2698, EndPos: 2700, }, Value: "a", @@ -5854,7 +5855,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2704, + StartPos: 2703, EndPos: 2704, }, Value: "1", @@ -5864,7 +5865,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2707, + StartPos: 2706, EndPos: 2708, }, PhpDocComment: "", @@ -5872,14 +5873,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2707, + StartPos: 2706, EndPos: 2708, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2707, + StartPos: 2706, EndPos: 2708, }, Value: "b", @@ -5894,7 +5895,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2714, + StartPos: 2713, EndPos: 2731, }, Vars: []node.Node{ @@ -5902,21 +5903,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2721, + StartPos: 2720, EndPos: 2722, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2721, + StartPos: 2720, EndPos: 2722, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2721, + StartPos: 2720, EndPos: 2722, }, Value: "a", @@ -5927,21 +5928,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2725, + StartPos: 2724, EndPos: 2730, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2725, + StartPos: 2724, EndPos: 2726, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2725, + StartPos: 2724, EndPos: 2726, }, Value: "b", @@ -5951,7 +5952,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2730, + StartPos: 2729, EndPos: 2730, }, Value: "1", @@ -5963,7 +5964,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2735, + StartPos: 2734, EndPos: 2752, }, Vars: []node.Node{ @@ -5971,21 +5972,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2742, + StartPos: 2741, EndPos: 2747, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2742, + StartPos: 2741, EndPos: 2743, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2742, + StartPos: 2741, EndPos: 2743, }, Value: "a", @@ -5995,7 +5996,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2747, + StartPos: 2746, EndPos: 2747, }, Value: "1", @@ -6005,21 +6006,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2750, + StartPos: 2749, EndPos: 2751, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2750, + StartPos: 2749, EndPos: 2751, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2750, + StartPos: 2749, EndPos: 2751, }, Value: "b", @@ -6032,14 +6033,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 122, - StartPos: 2757, + StartPos: 2756, EndPos: 2815, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2765, + StartPos: 2764, EndPos: 2765, }, Value: "1", @@ -6048,7 +6049,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: -1, - StartPos: 2773, + StartPos: 2772, EndPos: -1, }, Cases: []node.Node{ @@ -6056,14 +6057,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: -1, - StartPos: 2773, + StartPos: 2772, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2778, + StartPos: 2777, EndPos: 2778, }, Value: "1", @@ -6074,7 +6075,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: -1, - StartPos: 2784, + StartPos: 2783, EndPos: -1, }, Stmts: []node.Node{}, @@ -6083,14 +6084,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 121, EndLine: -1, - StartPos: 2796, + StartPos: 2795, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 121, EndLine: 121, - StartPos: 2801, + StartPos: 2800, EndPos: 2801, }, Value: "2", @@ -6104,14 +6105,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 124, EndLine: 127, - StartPos: 2820, + StartPos: 2819, EndPos: 2867, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 124, EndLine: 124, - StartPos: 2828, + StartPos: 2827, EndPos: 2828, }, Value: "1", @@ -6120,7 +6121,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 125, EndLine: -1, - StartPos: 2837, + StartPos: 2836, EndPos: -1, }, Cases: []node.Node{ @@ -6128,14 +6129,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 125, EndLine: -1, - StartPos: 2837, + StartPos: 2836, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 125, EndLine: 125, - StartPos: 2842, + StartPos: 2841, EndPos: 2842, }, Value: "1", @@ -6146,14 +6147,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 126, EndLine: -1, - StartPos: 2848, + StartPos: 2847, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 126, EndLine: 126, - StartPos: 2853, + StartPos: 2852, EndPos: 2853, }, Value: "2", @@ -6167,14 +6168,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: 132, - StartPos: 2874, + StartPos: 2873, EndPos: 2925, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 129, EndLine: 129, - StartPos: 2882, + StartPos: 2881, EndPos: 2882, }, Value: "1", @@ -6183,7 +6184,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: 132, - StartPos: 2885, + StartPos: 2884, EndPos: 2925, }, Cases: []node.Node{ @@ -6191,14 +6192,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2890, + StartPos: 2889, EndPos: 2903, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2895, + StartPos: 2894, EndPos: 2895, }, Value: "1", @@ -6208,7 +6209,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2898, + StartPos: 2897, EndPos: 2903, }, }, @@ -6218,14 +6219,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2908, + StartPos: 2907, EndPos: 2921, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2913, + StartPos: 2912, EndPos: 2913, }, Value: "2", @@ -6235,7 +6236,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2916, + StartPos: 2915, EndPos: 2921, }, }, @@ -6248,14 +6249,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 137, - StartPos: 2932, + StartPos: 2931, EndPos: 2984, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 2940, + StartPos: 2939, EndPos: 2940, }, Value: "1", @@ -6264,7 +6265,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 137, - StartPos: 2943, + StartPos: 2942, EndPos: 2984, }, Cases: []node.Node{ @@ -6272,14 +6273,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2949, + StartPos: 2948, EndPos: 2962, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2954, + StartPos: 2953, EndPos: 2954, }, Value: "1", @@ -6289,7 +6290,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2957, + StartPos: 2956, EndPos: 2962, }, }, @@ -6299,14 +6300,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2967, + StartPos: 2966, EndPos: 2980, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2972, + StartPos: 2971, EndPos: 2972, }, Value: "2", @@ -6316,7 +6317,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2975, + StartPos: 2974, EndPos: 2980, }, }, @@ -6329,21 +6330,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 138, EndLine: 138, - StartPos: 2988, + StartPos: 2987, EndPos: 2996, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 138, EndLine: 138, - StartPos: 2994, + StartPos: 2993, EndPos: 2995, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 138, EndLine: 138, - StartPos: 2994, + StartPos: 2993, EndPos: 2995, }, Value: "e", @@ -6354,7 +6355,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3000, + StartPos: 2999, EndPos: 3011, }, PhpDocComment: "", @@ -6362,7 +6363,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3006, + StartPos: 3005, EndPos: 3008, }, Value: "Foo", @@ -6373,7 +6374,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3015, + StartPos: 3014, EndPos: 3036, }, PhpDocComment: "", @@ -6381,7 +6382,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3021, + StartPos: 3020, EndPos: 3023, }, Value: "Foo", @@ -6391,7 +6392,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3027, + StartPos: 3026, EndPos: 3034, }, Traits: []node.Node{ @@ -6399,7 +6400,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3031, + StartPos: 3030, EndPos: 3033, }, Parts: []node.Node{ @@ -6407,7 +6408,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3031, + StartPos: 3030, EndPos: 3033, }, Value: "Bar", @@ -6419,7 +6420,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3034, + StartPos: 3033, EndPos: 3034, }, }, @@ -6430,7 +6431,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3040, + StartPos: 3039, EndPos: 3068, }, PhpDocComment: "", @@ -6438,7 +6439,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3046, + StartPos: 3045, EndPos: 3048, }, Value: "Foo", @@ -6448,7 +6449,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3052, + StartPos: 3051, EndPos: 3066, }, Traits: []node.Node{ @@ -6456,7 +6457,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3056, + StartPos: 3055, EndPos: 3058, }, Parts: []node.Node{ @@ -6464,7 +6465,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3056, + StartPos: 3055, EndPos: 3058, }, Value: "Bar", @@ -6475,7 +6476,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3061, + StartPos: 3060, EndPos: 3063, }, Parts: []node.Node{ @@ -6483,7 +6484,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3061, + StartPos: 3060, EndPos: 3063, }, Value: "Baz", @@ -6495,7 +6496,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3065, + StartPos: 3064, EndPos: 3066, }, }, @@ -6506,7 +6507,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3072, + StartPos: 3071, EndPos: 3116, }, PhpDocComment: "", @@ -6514,7 +6515,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3078, + StartPos: 3077, EndPos: 3080, }, Value: "Foo", @@ -6524,7 +6525,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3084, + StartPos: 3083, EndPos: 3114, }, Traits: []node.Node{ @@ -6532,7 +6533,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3088, + StartPos: 3087, EndPos: 3090, }, Parts: []node.Node{ @@ -6540,7 +6541,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3088, + StartPos: 3087, EndPos: 3090, }, Value: "Bar", @@ -6551,7 +6552,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3093, + StartPos: 3092, EndPos: 3095, }, Parts: []node.Node{ @@ -6559,7 +6560,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3093, + StartPos: 3092, EndPos: 3095, }, Value: "Baz", @@ -6571,7 +6572,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3097, + StartPos: 3096, EndPos: 3114, }, Adaptations: []node.Node{ @@ -6579,21 +6580,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3099, + StartPos: 3098, EndPos: 3111, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3099, + StartPos: 3098, EndPos: 3101, }, Method: &node.Identifier{ Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3099, + StartPos: 3098, EndPos: 3101, }, Value: "one", @@ -6603,7 +6604,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3106, + StartPos: 3105, EndPos: 3111, }, Value: "public", @@ -6618,7 +6619,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3120, + StartPos: 3119, EndPos: 3168, }, PhpDocComment: "", @@ -6626,7 +6627,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3126, + StartPos: 3125, EndPos: 3128, }, Value: "Foo", @@ -6636,7 +6637,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3132, + StartPos: 3131, EndPos: 3166, }, Traits: []node.Node{ @@ -6644,7 +6645,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3136, + StartPos: 3135, EndPos: 3138, }, Parts: []node.Node{ @@ -6652,7 +6653,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3136, + StartPos: 3135, EndPos: 3138, }, Value: "Bar", @@ -6663,7 +6664,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3141, + StartPos: 3140, EndPos: 3143, }, Parts: []node.Node{ @@ -6671,7 +6672,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3141, + StartPos: 3140, EndPos: 3143, }, Value: "Baz", @@ -6683,7 +6684,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3145, + StartPos: 3144, EndPos: 3166, }, Adaptations: []node.Node{ @@ -6691,21 +6692,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3147, + StartPos: 3146, EndPos: 3163, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3147, + StartPos: 3146, EndPos: 3149, }, Method: &node.Identifier{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3147, + StartPos: 3146, EndPos: 3149, }, Value: "one", @@ -6715,7 +6716,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3154, + StartPos: 3153, EndPos: 3159, }, Value: "public", @@ -6724,7 +6725,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3161, + StartPos: 3160, EndPos: 3163, }, Value: "two", @@ -6739,7 +6740,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3172, + StartPos: 3171, EndPos: 3248, }, PhpDocComment: "", @@ -6747,7 +6748,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3178, + StartPos: 3177, EndPos: 3180, }, Value: "Foo", @@ -6757,7 +6758,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3184, + StartPos: 3183, EndPos: 3246, }, Traits: []node.Node{ @@ -6765,7 +6766,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3188, + StartPos: 3187, EndPos: 3190, }, Parts: []node.Node{ @@ -6773,7 +6774,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3188, + StartPos: 3187, EndPos: 3190, }, Value: "Bar", @@ -6784,7 +6785,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3193, + StartPos: 3192, EndPos: 3195, }, Parts: []node.Node{ @@ -6792,7 +6793,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3193, + StartPos: 3192, EndPos: 3195, }, Value: "Baz", @@ -6804,7 +6805,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3197, + StartPos: 3196, EndPos: 3246, }, Adaptations: []node.Node{ @@ -6812,21 +6813,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3199, + StartPos: 3198, EndPos: 3226, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3199, + StartPos: 3198, EndPos: 3206, }, Trait: &name.Name{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3199, + StartPos: 3198, EndPos: 3201, }, Parts: []node.Node{ @@ -6834,7 +6835,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3199, + StartPos: 3198, EndPos: 3201, }, Value: "Bar", @@ -6845,7 +6846,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3204, + StartPos: 3203, EndPos: 3206, }, Value: "one", @@ -6856,7 +6857,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3218, + StartPos: 3217, EndPos: 3220, }, Parts: []node.Node{ @@ -6864,7 +6865,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3218, + StartPos: 3217, EndPos: 3220, }, Value: "Baz", @@ -6875,7 +6876,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3223, + StartPos: 3222, EndPos: 3226, }, Parts: []node.Node{ @@ -6883,7 +6884,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3223, + StartPos: 3222, EndPos: 3226, }, Value: "Quux", @@ -6896,21 +6897,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3229, + StartPos: 3228, EndPos: 3243, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3229, + StartPos: 3228, EndPos: 3236, }, Trait: &name.Name{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3229, + StartPos: 3228, EndPos: 3231, }, Parts: []node.Node{ @@ -6918,7 +6919,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3229, + StartPos: 3228, EndPos: 3231, }, Value: "Baz", @@ -6929,7 +6930,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3234, + StartPos: 3233, EndPos: 3236, }, Value: "one", @@ -6939,7 +6940,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3241, + StartPos: 3240, EndPos: 3243, }, Value: "two", @@ -6954,7 +6955,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: -1, - StartPos: 3253, + StartPos: 3252, EndPos: -1, }, Stmts: []node.Node{}, @@ -6964,7 +6965,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3262, + StartPos: 3261, EndPos: 3291, }, Stmts: []node.Node{}, @@ -6973,7 +6974,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3269, + StartPos: 3268, EndPos: 3291, }, Types: []node.Node{ @@ -6981,7 +6982,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3276, + StartPos: 3275, EndPos: 3284, }, Parts: []node.Node{ @@ -6989,7 +6990,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3276, + StartPos: 3275, EndPos: 3284, }, Value: "Exception", @@ -7001,14 +7002,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3286, + StartPos: 3285, EndPos: 3287, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3286, + StartPos: 3285, EndPos: 3287, }, Value: "e", @@ -7022,7 +7023,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3295, + StartPos: 3294, EndPos: 3355, }, Stmts: []node.Node{}, @@ -7031,7 +7032,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3302, + StartPos: 3301, EndPos: 3324, }, Types: []node.Node{ @@ -7039,7 +7040,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3309, + StartPos: 3308, EndPos: 3317, }, Parts: []node.Node{ @@ -7047,7 +7048,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3309, + StartPos: 3308, EndPos: 3317, }, Value: "Exception", @@ -7059,14 +7060,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3319, + StartPos: 3318, EndPos: 3320, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3319, + StartPos: 3318, EndPos: 3320, }, Value: "e", @@ -7078,7 +7079,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3326, + StartPos: 3325, EndPos: 3355, }, Types: []node.Node{ @@ -7086,7 +7087,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3333, + StartPos: 3332, EndPos: 3348, }, Parts: []node.Node{ @@ -7094,7 +7095,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3333, + StartPos: 3332, EndPos: 3348, }, Value: "RuntimeException", @@ -7106,14 +7107,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3350, + StartPos: 3349, EndPos: 3351, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3350, + StartPos: 3349, EndPos: 3351, }, Value: "e", @@ -7127,7 +7128,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3359, + StartPos: 3358, EndPos: 3462, }, Stmts: []node.Node{}, @@ -7136,7 +7137,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3366, + StartPos: 3365, EndPos: 3388, }, Types: []node.Node{ @@ -7144,7 +7145,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3373, + StartPos: 3372, EndPos: 3381, }, Parts: []node.Node{ @@ -7152,7 +7153,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3373, + StartPos: 3372, EndPos: 3381, }, Value: "Exception", @@ -7164,14 +7165,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3383, + StartPos: 3382, EndPos: 3384, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3383, + StartPos: 3382, EndPos: 3384, }, Value: "e", @@ -7183,7 +7184,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3390, + StartPos: 3389, EndPos: 3420, }, Types: []node.Node{ @@ -7191,7 +7192,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3397, + StartPos: 3396, EndPos: 3413, }, Parts: []node.Node{ @@ -7199,7 +7200,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3398, + StartPos: 3397, EndPos: 3413, }, Value: "RuntimeException", @@ -7211,14 +7212,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3415, + StartPos: 3414, EndPos: 3416, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3415, + StartPos: 3414, EndPos: 3416, }, Value: "e", @@ -7230,7 +7231,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3422, + StartPos: 3421, EndPos: 3462, }, Types: []node.Node{ @@ -7238,7 +7239,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3429, + StartPos: 3428, EndPos: 3455, }, Parts: []node.Node{ @@ -7246,7 +7247,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3439, + StartPos: 3438, EndPos: 3455, }, Value: "AdditionException", @@ -7258,14 +7259,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3457, + StartPos: 3456, EndPos: 3458, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3457, + StartPos: 3456, EndPos: 3458, }, Value: "e", @@ -7279,7 +7280,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3466, + StartPos: 3465, EndPos: 3506, }, Stmts: []node.Node{}, @@ -7288,7 +7289,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3473, + StartPos: 3472, EndPos: 3495, }, Types: []node.Node{ @@ -7296,7 +7297,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3480, + StartPos: 3479, EndPos: 3488, }, Parts: []node.Node{ @@ -7304,7 +7305,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3480, + StartPos: 3479, EndPos: 3488, }, Value: "Exception", @@ -7316,14 +7317,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3490, + StartPos: 3489, EndPos: 3491, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3490, + StartPos: 3489, EndPos: 3491, }, Value: "e", @@ -7336,7 +7337,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3497, + StartPos: 3496, EndPos: 3506, }, Stmts: []node.Node{}, @@ -7346,7 +7347,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3511, + StartPos: 3510, EndPos: 3524, }, Vars: []node.Node{ @@ -7354,14 +7355,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3517, + StartPos: 3516, EndPos: 3518, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3517, + StartPos: 3516, EndPos: 3518, }, Value: "a", @@ -7371,14 +7372,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3521, + StartPos: 3520, EndPos: 3522, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3521, + StartPos: 3520, EndPos: 3522, }, Value: "b", @@ -7390,7 +7391,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3529, + StartPos: 3528, EndPos: 3536, }, Uses: []node.Node{ @@ -7398,14 +7399,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3533, + StartPos: 3532, EndPos: 3535, }, Use: &name.Name{ Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3533, + StartPos: 3532, EndPos: 3535, }, Parts: []node.Node{ @@ -7413,7 +7414,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3533, + StartPos: 3532, EndPos: 3535, }, Value: "Foo", @@ -7427,7 +7428,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3540, + StartPos: 3539, EndPos: 3548, }, Uses: []node.Node{ @@ -7435,14 +7436,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3545, + StartPos: 3544, EndPos: 3547, }, Use: &name.Name{ Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3545, + StartPos: 3544, EndPos: 3547, }, Parts: []node.Node{ @@ -7450,7 +7451,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3545, + StartPos: 3544, EndPos: 3547, }, Value: "Foo", @@ -7464,7 +7465,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3552, + StartPos: 3551, EndPos: 3567, }, Uses: []node.Node{ @@ -7472,14 +7473,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3557, + StartPos: 3556, EndPos: 3566, }, Use: &name.Name{ Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3557, + StartPos: 3556, EndPos: 3559, }, Parts: []node.Node{ @@ -7487,7 +7488,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3557, + StartPos: 3556, EndPos: 3559, }, Value: "Foo", @@ -7498,7 +7499,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3564, + StartPos: 3563, EndPos: 3566, }, Value: "Bar", @@ -7510,7 +7511,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3571, + StartPos: 3570, EndPos: 3583, }, Uses: []node.Node{ @@ -7518,14 +7519,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3575, + StartPos: 3574, EndPos: 3577, }, Use: &name.Name{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3575, + StartPos: 3574, EndPos: 3577, }, Parts: []node.Node{ @@ -7533,7 +7534,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3575, + StartPos: 3574, EndPos: 3577, }, Value: "Foo", @@ -7545,14 +7546,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3580, + StartPos: 3579, EndPos: 3582, }, Use: &name.Name{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3580, + StartPos: 3579, EndPos: 3582, }, Parts: []node.Node{ @@ -7560,7 +7561,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3580, + StartPos: 3579, EndPos: 3582, }, Value: "Bar", @@ -7574,7 +7575,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3587, + StartPos: 3586, EndPos: 3606, }, Uses: []node.Node{ @@ -7582,14 +7583,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3591, + StartPos: 3590, EndPos: 3593, }, Use: &name.Name{ Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3591, + StartPos: 3590, EndPos: 3593, }, Parts: []node.Node{ @@ -7597,7 +7598,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3591, + StartPos: 3590, EndPos: 3593, }, Value: "Foo", @@ -7609,14 +7610,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3596, + StartPos: 3595, EndPos: 3605, }, Use: &name.Name{ Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3596, + StartPos: 3595, EndPos: 3598, }, Parts: []node.Node{ @@ -7624,7 +7625,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3596, + StartPos: 3595, EndPos: 3598, }, Value: "Bar", @@ -7635,7 +7636,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3603, + StartPos: 3602, EndPos: 3605, }, Value: "Baz", @@ -7647,14 +7648,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3610, + StartPos: 3609, EndPos: 3632, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3614, + StartPos: 3613, EndPos: 3621, }, Value: "function", @@ -7664,14 +7665,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3623, + StartPos: 3622, EndPos: 3625, }, Use: &name.Name{ Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3623, + StartPos: 3622, EndPos: 3625, }, Parts: []node.Node{ @@ -7679,7 +7680,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3623, + StartPos: 3622, EndPos: 3625, }, Value: "Foo", @@ -7691,14 +7692,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3629, + StartPos: 3628, EndPos: 3631, }, Use: &name.Name{ Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3629, + StartPos: 3628, EndPos: 3631, }, Parts: []node.Node{ @@ -7706,7 +7707,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3629, + StartPos: 3628, EndPos: 3631, }, Value: "Bar", @@ -7720,14 +7721,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3636, + StartPos: 3635, EndPos: 3672, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3640, + StartPos: 3639, EndPos: 3647, }, Value: "function", @@ -7737,14 +7738,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3649, + StartPos: 3648, EndPos: 3658, }, Use: &name.Name{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3649, + StartPos: 3648, EndPos: 3651, }, Parts: []node.Node{ @@ -7752,7 +7753,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3649, + StartPos: 3648, EndPos: 3651, }, Value: "Foo", @@ -7763,7 +7764,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3656, + StartPos: 3655, EndPos: 3658, }, Value: "foo", @@ -7773,14 +7774,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3662, + StartPos: 3661, EndPos: 3671, }, Use: &name.Name{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3662, + StartPos: 3661, EndPos: 3664, }, Parts: []node.Node{ @@ -7788,7 +7789,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3662, + StartPos: 3661, EndPos: 3664, }, Value: "Bar", @@ -7799,7 +7800,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3669, + StartPos: 3668, EndPos: 3671, }, Value: "bar", @@ -7811,14 +7812,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3676, + StartPos: 3675, EndPos: 3695, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3680, + StartPos: 3679, EndPos: 3684, }, Value: "const", @@ -7828,14 +7829,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3686, + StartPos: 3685, EndPos: 3688, }, Use: &name.Name{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3686, + StartPos: 3685, EndPos: 3688, }, Parts: []node.Node{ @@ -7843,7 +7844,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3686, + StartPos: 3685, EndPos: 3688, }, Value: "Foo", @@ -7855,14 +7856,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3692, + StartPos: 3691, EndPos: 3694, }, Use: &name.Name{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3692, + StartPos: 3691, EndPos: 3694, }, Parts: []node.Node{ @@ -7870,7 +7871,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3692, + StartPos: 3691, EndPos: 3694, }, Value: "Bar", @@ -7884,14 +7885,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3699, + StartPos: 3698, EndPos: 3732, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3703, + StartPos: 3702, EndPos: 3707, }, Value: "const", @@ -7901,14 +7902,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3709, + StartPos: 3708, EndPos: 3718, }, Use: &name.Name{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3709, + StartPos: 3708, EndPos: 3711, }, Parts: []node.Node{ @@ -7916,7 +7917,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3709, + StartPos: 3708, EndPos: 3711, }, Value: "Foo", @@ -7927,7 +7928,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3716, + StartPos: 3715, EndPos: 3718, }, Value: "foo", @@ -7937,14 +7938,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3722, + StartPos: 3721, EndPos: 3731, }, Use: &name.Name{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3722, + StartPos: 3721, EndPos: 3724, }, Parts: []node.Node{ @@ -7952,7 +7953,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3722, + StartPos: 3721, EndPos: 3724, }, Value: "Bar", @@ -7963,7 +7964,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3729, + StartPos: 3728, EndPos: 3731, }, Value: "bar", @@ -7975,28 +7976,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3737, + StartPos: 3736, EndPos: 3742, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3737, + StartPos: 3736, EndPos: 3741, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3737, + StartPos: 3736, EndPos: 3738, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3737, + StartPos: 3736, EndPos: 3738, }, Value: "a", @@ -8006,7 +8007,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3740, + StartPos: 3739, EndPos: 3740, }, Value: "1", @@ -8017,35 +8018,35 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3746, + StartPos: 3745, EndPos: 3754, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3746, + StartPos: 3745, EndPos: 3753, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3746, + StartPos: 3745, EndPos: 3750, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3746, + StartPos: 3745, EndPos: 3747, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3746, + StartPos: 3745, EndPos: 3747, }, Value: "a", @@ -8055,7 +8056,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3749, + StartPos: 3748, EndPos: 3749, }, Value: "1", @@ -8065,7 +8066,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3752, + StartPos: 3751, EndPos: 3752, }, Value: "2", @@ -8076,14 +8077,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3758, + StartPos: 3757, EndPos: 3765, }, Expr: &expr.Array{ Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3758, + StartPos: 3757, EndPos: 3764, }, Items: []node.Node{}, @@ -8093,14 +8094,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3769, + StartPos: 3768, EndPos: 3777, }, Expr: &expr.Array{ Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3769, + StartPos: 3768, EndPos: 3776, }, Items: []node.Node{ @@ -8108,14 +8109,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3775, + StartPos: 3774, EndPos: 3775, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3775, + StartPos: 3774, EndPos: 3775, }, Value: "1", @@ -8128,14 +8129,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3781, + StartPos: 3780, EndPos: 3798, }, Expr: &expr.Array{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3781, + StartPos: 3780, EndPos: 3797, }, Items: []node.Node{ @@ -8143,14 +8144,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3787, + StartPos: 3786, EndPos: 3790, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3787, + StartPos: 3786, EndPos: 3787, }, Value: "1", @@ -8159,7 +8160,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3790, + StartPos: 3789, EndPos: 3790, }, Value: "1", @@ -8169,28 +8170,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3793, + StartPos: 3792, EndPos: 3795, }, Val: &expr.Reference{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3793, + StartPos: 3792, EndPos: 3795, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3794, + StartPos: 3793, EndPos: 3795, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3794, + StartPos: 3793, EndPos: 3795, }, Value: "b", @@ -8206,14 +8207,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3802, + StartPos: 3801, EndPos: 3816, }, Expr: &expr.Array{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3802, + StartPos: 3801, EndPos: 3815, }, Items: []node.Node{ @@ -8221,14 +8222,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3808, + StartPos: 3807, EndPos: 3814, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3808, + StartPos: 3807, EndPos: 3808, }, Value: "3", @@ -8237,21 +8238,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3812, + StartPos: 3811, EndPos: 3814, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3813, + StartPos: 3812, EndPos: 3814, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3813, + StartPos: 3812, EndPos: 3814, }, Value: "b", @@ -8266,14 +8267,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3820, + StartPos: 3819, EndPos: 3848, }, Expr: &expr.Array{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3820, + StartPos: 3819, EndPos: 3847, }, Items: []node.Node{ @@ -8281,28 +8282,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3826, + StartPos: 3825, EndPos: 3828, }, Val: &expr.Reference{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3826, + StartPos: 3825, EndPos: 3828, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3827, + StartPos: 3826, EndPos: 3828, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3827, + StartPos: 3826, EndPos: 3828, }, Value: "b", @@ -8314,14 +8315,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3831, + StartPos: 3830, EndPos: 3834, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3831, + StartPos: 3830, EndPos: 3831, }, Value: "1", @@ -8330,7 +8331,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3834, + StartPos: 3833, EndPos: 3834, }, Value: "1", @@ -8340,14 +8341,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3837, + StartPos: 3836, EndPos: 3837, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3837, + StartPos: 3836, EndPos: 3837, }, Value: "1", @@ -8357,14 +8358,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3840, + StartPos: 3839, EndPos: 3846, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3840, + StartPos: 3839, EndPos: 3840, }, Value: "3", @@ -8373,21 +8374,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3844, + StartPos: 3843, EndPos: 3846, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3845, + StartPos: 3844, EndPos: 3846, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3845, + StartPos: 3844, EndPos: 3846, }, Value: "b", @@ -8402,28 +8403,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3852, + StartPos: 3851, EndPos: 3855, }, Expr: &expr.BitwiseNot{ Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3852, + StartPos: 3851, EndPos: 3854, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3853, + StartPos: 3852, EndPos: 3854, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3853, + StartPos: 3852, EndPos: 3854, }, Value: "a", @@ -8435,28 +8436,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3859, + StartPos: 3858, EndPos: 3862, }, Expr: &expr.BooleanNot{ Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3859, + StartPos: 3858, EndPos: 3861, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3860, + StartPos: 3859, EndPos: 3861, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3860, + StartPos: 3859, EndPos: 3861, }, Value: "a", @@ -8468,21 +8469,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3867, + StartPos: 3866, EndPos: 3875, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3867, + StartPos: 3866, EndPos: 3874, }, Class: &name.Name{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3867, + StartPos: 3866, EndPos: 3869, }, Parts: []node.Node{ @@ -8490,7 +8491,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3867, + StartPos: 3866, EndPos: 3869, }, Value: "Foo", @@ -8501,7 +8502,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3872, + StartPos: 3871, EndPos: 3874, }, Value: "Bar", @@ -8512,28 +8513,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3879, + StartPos: 3878, EndPos: 3888, }, Expr: &expr.Clone{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3879, + StartPos: 3878, EndPos: 3886, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3885, + StartPos: 3884, EndPos: 3886, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3885, + StartPos: 3884, EndPos: 3886, }, Value: "a", @@ -8545,28 +8546,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3892, + StartPos: 3891, EndPos: 3900, }, Expr: &expr.Clone{ Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3892, + StartPos: 3891, EndPos: 3899, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3898, + StartPos: 3897, EndPos: 3899, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3898, + StartPos: 3897, EndPos: 3899, }, Value: "a", @@ -8578,19 +8579,19 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3904, + StartPos: 3903, EndPos: 3916, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3904, + StartPos: 3903, EndPos: 3915, }, + Static: false, PhpDocComment: "", ReturnsRef: false, - Static: false, Stmts: []node.Node{}, }, }, @@ -8598,14 +8599,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3920, + StartPos: 3919, EndPos: 3953, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3920, + StartPos: 3919, EndPos: 3952, }, ReturnsRef: false, @@ -8616,7 +8617,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3929, + StartPos: 3928, EndPos: 3930, }, ByRef: false, @@ -8625,14 +8626,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3929, + StartPos: 3928, EndPos: 3930, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3929, + StartPos: 3928, EndPos: 3930, }, Value: "a", @@ -8643,23 +8644,23 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3933, + StartPos: 3932, EndPos: 3934, }, - ByRef: false, Variadic: false, + ByRef: false, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3933, + StartPos: 3932, EndPos: 3934, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3933, + StartPos: 3932, EndPos: 3934, }, Value: "b", @@ -8671,7 +8672,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3937, + StartPos: 3936, EndPos: 3949, }, Uses: []node.Node{ @@ -8679,14 +8680,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3942, + StartPos: 3941, EndPos: 3943, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3942, + StartPos: 3941, EndPos: 3943, }, Value: "c", @@ -8696,21 +8697,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3946, + StartPos: 3945, EndPos: 3948, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3947, + StartPos: 3946, EndPos: 3948, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3947, + StartPos: 3946, EndPos: 3948, }, Value: "d", @@ -8726,14 +8727,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3957, + StartPos: 3956, EndPos: 3990, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3957, + StartPos: 3956, EndPos: 3989, }, ReturnsRef: false, @@ -8744,7 +8745,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3966, + StartPos: 3965, EndPos: 3967, }, ByRef: false, @@ -8753,14 +8754,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3966, + StartPos: 3965, EndPos: 3967, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3966, + StartPos: 3965, EndPos: 3967, }, Value: "a", @@ -8771,7 +8772,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3970, + StartPos: 3969, EndPos: 3971, }, ByRef: false, @@ -8780,14 +8781,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3970, + StartPos: 3969, EndPos: 3971, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3970, + StartPos: 3969, EndPos: 3971, }, Value: "b", @@ -8799,7 +8800,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3974, + StartPos: 3973, EndPos: 3986, }, Uses: []node.Node{ @@ -8807,21 +8808,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3979, + StartPos: 3978, EndPos: 3981, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3980, + StartPos: 3979, EndPos: 3981, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3980, + StartPos: 3979, EndPos: 3981, }, Value: "c", @@ -8832,14 +8833,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3984, + StartPos: 3983, EndPos: 3985, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3984, + StartPos: 3983, EndPos: 3985, }, Value: "d", @@ -8854,14 +8855,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 3994, + StartPos: 3993, EndPos: 4007, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 3994, + StartPos: 3993, EndPos: 4006, }, ReturnsRef: false, @@ -8874,21 +8875,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4011, + StartPos: 4010, EndPos: 4014, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4011, + StartPos: 4010, EndPos: 4013, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4011, + StartPos: 4010, EndPos: 4013, }, Parts: []node.Node{ @@ -8896,7 +8897,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4011, + StartPos: 4010, EndPos: 4013, }, Value: "foo", @@ -8909,21 +8910,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4018, + StartPos: 4017, EndPos: 4031, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4018, + StartPos: 4017, EndPos: 4030, }, Constant: &name.Relative{ Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4018, + StartPos: 4017, EndPos: 4030, }, Parts: []node.Node{ @@ -8931,7 +8932,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4028, + StartPos: 4027, EndPos: 4030, }, Value: "foo", @@ -8944,21 +8945,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4035, + StartPos: 4034, EndPos: 4039, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4035, + StartPos: 4034, EndPos: 4038, }, Constant: &name.FullyQualified{ Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4035, + StartPos: 4034, EndPos: 4038, }, Parts: []node.Node{ @@ -8966,7 +8967,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4036, + StartPos: 4035, EndPos: 4038, }, Value: "foo", @@ -8979,28 +8980,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4044, + StartPos: 4043, EndPos: 4053, }, Expr: &expr.Empty{ Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4044, + StartPos: 4043, EndPos: 4052, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4050, + StartPos: 4049, EndPos: 4051, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4050, + StartPos: 4049, EndPos: 4051, }, Value: "a", @@ -9012,28 +9013,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4057, + StartPos: 4056, EndPos: 4067, }, Expr: &expr.Empty{ Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4057, + StartPos: 4056, EndPos: 4066, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4063, + StartPos: 4062, EndPos: 4065, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4063, + StartPos: 4062, EndPos: 4065, }, Parts: []node.Node{ @@ -9041,7 +9042,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4063, + StartPos: 4062, EndPos: 4065, }, Value: "Foo", @@ -9055,28 +9056,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4071, + StartPos: 4070, EndPos: 4074, }, Expr: &expr.ErrorSuppress{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4071, + StartPos: 4070, EndPos: 4073, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4072, + StartPos: 4071, EndPos: 4073, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4072, + StartPos: 4071, EndPos: 4073, }, Value: "a", @@ -9088,28 +9089,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4078, + StartPos: 4077, EndPos: 4086, }, Expr: &expr.Eval{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4078, + StartPos: 4077, EndPos: 4085, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4083, + StartPos: 4082, EndPos: 4084, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4083, + StartPos: 4082, EndPos: 4084, }, Value: "a", @@ -9121,14 +9122,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 189, EndLine: 189, - StartPos: 4090, + StartPos: 4089, EndPos: 4094, }, Expr: &expr.Exit{ Position: &position.Position{ StartLine: 189, EndLine: 189, - StartPos: 4090, + StartPos: 4089, EndPos: 4093, }, Die: false, @@ -9138,14 +9139,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4098, + StartPos: 4097, EndPos: 4106, }, Expr: &expr.Exit{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4098, + StartPos: 4097, EndPos: 4105, }, Die: false, @@ -9153,14 +9154,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4103, + StartPos: 4102, EndPos: 4104, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4103, + StartPos: 4102, EndPos: 4104, }, Value: "a", @@ -9172,14 +9173,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4110, + StartPos: 4109, EndPos: 4115, }, Expr: &expr.Exit{ Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4110, + StartPos: 4109, EndPos: 4114, }, Die: true, @@ -9189,14 +9190,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4119, + StartPos: 4118, EndPos: 4126, }, Expr: &expr.Exit{ Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4119, + StartPos: 4118, EndPos: 4125, }, Die: true, @@ -9204,14 +9205,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4123, + StartPos: 4122, EndPos: 4124, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4123, + StartPos: 4122, EndPos: 4124, }, Value: "a", @@ -9223,21 +9224,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4130, + StartPos: 4129, EndPos: 4135, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4130, + StartPos: 4129, EndPos: 4134, }, Function: &name.Name{ Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4130, + StartPos: 4129, EndPos: 4132, }, Parts: []node.Node{ @@ -9245,7 +9246,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4130, + StartPos: 4129, EndPos: 4132, }, Value: "foo", @@ -9256,7 +9257,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4133, + StartPos: 4132, EndPos: 4134, }, }, @@ -9266,21 +9267,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4139, + StartPos: 4138, EndPos: 4157, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4139, + StartPos: 4138, EndPos: 4156, }, Function: &name.Relative{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4139, + StartPos: 4138, EndPos: 4151, }, Parts: []node.Node{ @@ -9288,7 +9289,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4149, + StartPos: 4148, EndPos: 4151, }, Value: "foo", @@ -9299,7 +9300,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4152, + StartPos: 4151, EndPos: 4156, }, Arguments: []node.Node{ @@ -9307,7 +9308,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4154, + StartPos: 4153, EndPos: 4155, }, Variadic: false, @@ -9316,14 +9317,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4154, + StartPos: 4153, EndPos: 4155, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4154, + StartPos: 4153, EndPos: 4155, }, Value: "a", @@ -9338,21 +9339,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4161, + StartPos: 4160, EndPos: 4169, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4161, + StartPos: 4160, EndPos: 4168, }, Function: &name.FullyQualified{ Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4161, + StartPos: 4160, EndPos: 4164, }, Parts: []node.Node{ @@ -9360,7 +9361,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4162, + StartPos: 4161, EndPos: 4164, }, Value: "foo", @@ -9371,7 +9372,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4165, + StartPos: 4164, EndPos: 4168, }, Arguments: []node.Node{ @@ -9379,7 +9380,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4166, + StartPos: 4165, EndPos: 4167, }, Variadic: false, @@ -9388,7 +9389,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4166, + StartPos: 4165, EndPos: 4167, }, Items: []node.Node{}, @@ -9402,28 +9403,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4173, + StartPos: 4172, EndPos: 4187, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4173, + StartPos: 4172, EndPos: 4186, }, Function: &expr.Variable{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4173, + StartPos: 4172, EndPos: 4176, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4173, + StartPos: 4172, EndPos: 4176, }, Value: "foo", @@ -9433,7 +9434,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4177, + StartPos: 4176, EndPos: 4186, }, Arguments: []node.Node{ @@ -9441,30 +9442,30 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4178, + StartPos: 4177, EndPos: 4185, }, - Variadic: false, IsReference: false, + Variadic: false, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4178, + StartPos: 4177, EndPos: 4185, }, Value: &expr.Variable{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4184, + StartPos: 4183, EndPos: 4185, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4184, + StartPos: 4183, EndPos: 4185, }, Value: "a", @@ -9480,28 +9481,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4192, + StartPos: 4191, EndPos: 4196, }, Expr: &expr.PostDec{ Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4192, + StartPos: 4191, EndPos: 4195, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4192, + StartPos: 4191, EndPos: 4193, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4192, + StartPos: 4191, EndPos: 4193, }, Value: "a", @@ -9513,28 +9514,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4200, + StartPos: 4199, EndPos: 4204, }, Expr: &expr.PostInc{ Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4200, + StartPos: 4199, EndPos: 4203, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4200, + StartPos: 4199, EndPos: 4201, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4200, + StartPos: 4199, EndPos: 4201, }, Value: "a", @@ -9546,28 +9547,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4208, + StartPos: 4207, EndPos: 4212, }, Expr: &expr.PreDec{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4208, + StartPos: 4207, EndPos: 4211, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4210, + StartPos: 4209, EndPos: 4211, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4210, + StartPos: 4209, EndPos: 4211, }, Value: "a", @@ -9579,28 +9580,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4216, + StartPos: 4215, EndPos: 4220, }, Expr: &expr.PreInc{ Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4216, + StartPos: 4215, EndPos: 4219, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4218, + StartPos: 4217, EndPos: 4219, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4218, + StartPos: 4217, EndPos: 4219, }, Value: "a", @@ -9612,28 +9613,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4225, + StartPos: 4224, EndPos: 4235, }, Expr: &expr.Include{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4225, + StartPos: 4224, EndPos: 4234, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4233, + StartPos: 4232, EndPos: 4234, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4233, + StartPos: 4232, EndPos: 4234, }, Value: "a", @@ -9645,28 +9646,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4239, + StartPos: 4238, EndPos: 4254, }, Expr: &expr.IncludeOnce{ Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4239, + StartPos: 4238, EndPos: 4253, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4252, + StartPos: 4251, EndPos: 4253, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4252, + StartPos: 4251, EndPos: 4253, }, Value: "a", @@ -9678,28 +9679,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4258, + StartPos: 4257, EndPos: 4268, }, Expr: &expr.Require{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4258, + StartPos: 4257, EndPos: 4267, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4266, + StartPos: 4265, EndPos: 4267, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4266, + StartPos: 4265, EndPos: 4267, }, Value: "a", @@ -9711,28 +9712,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4272, + StartPos: 4271, EndPos: 4287, }, Expr: &expr.RequireOnce{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4272, + StartPos: 4271, EndPos: 4286, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4285, + StartPos: 4284, EndPos: 4286, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4285, + StartPos: 4284, EndPos: 4286, }, Value: "a", @@ -9744,28 +9745,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4292, + StartPos: 4291, EndPos: 4309, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4292, + StartPos: 4291, EndPos: 4308, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4292, + StartPos: 4291, EndPos: 4293, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4292, + StartPos: 4291, EndPos: 4293, }, Value: "a", @@ -9775,7 +9776,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4306, + StartPos: 4305, EndPos: 4308, }, Parts: []node.Node{ @@ -9783,7 +9784,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4306, + StartPos: 4305, EndPos: 4308, }, Value: "Foo", @@ -9796,28 +9797,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4313, + StartPos: 4312, EndPos: 4340, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4313, + StartPos: 4312, EndPos: 4339, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4313, + StartPos: 4312, EndPos: 4314, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4313, + StartPos: 4312, EndPos: 4314, }, Value: "a", @@ -9827,7 +9828,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4327, + StartPos: 4326, EndPos: 4339, }, Parts: []node.Node{ @@ -9835,7 +9836,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4337, + StartPos: 4336, EndPos: 4339, }, Value: "Foo", @@ -9848,28 +9849,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4344, + StartPos: 4343, EndPos: 4362, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4344, + StartPos: 4343, EndPos: 4361, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4344, + StartPos: 4343, EndPos: 4345, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4344, + StartPos: 4343, EndPos: 4345, }, Value: "a", @@ -9879,7 +9880,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4358, + StartPos: 4357, EndPos: 4361, }, Parts: []node.Node{ @@ -9887,7 +9888,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4359, + StartPos: 4358, EndPos: 4361, }, Value: "Foo", @@ -9900,14 +9901,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4367, + StartPos: 4366, EndPos: 4380, }, Expr: &expr.Isset{ Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4367, + StartPos: 4366, EndPos: 4379, }, Variables: []node.Node{ @@ -9915,14 +9916,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4373, + StartPos: 4372, EndPos: 4374, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4373, + StartPos: 4372, EndPos: 4374, }, Value: "a", @@ -9932,14 +9933,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4377, + StartPos: 4376, EndPos: 4378, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4377, + StartPos: 4376, EndPos: 4378, }, Value: "b", @@ -9952,14 +9953,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4384, + StartPos: 4383, EndPos: 4394, }, Expr: &expr.Isset{ Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4384, + StartPos: 4383, EndPos: 4393, }, Variables: []node.Node{ @@ -9967,14 +9968,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4390, + StartPos: 4389, EndPos: 4392, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4390, + StartPos: 4389, EndPos: 4392, }, Parts: []node.Node{ @@ -9982,7 +9983,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4390, + StartPos: 4389, EndPos: 4392, }, Value: "Foo", @@ -9997,21 +9998,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4398, + StartPos: 4397, EndPos: 4409, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4398, + StartPos: 4397, EndPos: 4408, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4398, + StartPos: 4397, EndPos: 4403, }, Items: []node.Node{}, @@ -10020,14 +10021,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4407, + StartPos: 4406, EndPos: 4408, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4407, + StartPos: 4406, EndPos: 4408, }, Value: "b", @@ -10039,21 +10040,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4413, + StartPos: 4412, EndPos: 4430, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4413, + StartPos: 4412, EndPos: 4429, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4413, + StartPos: 4412, EndPos: 4424, }, Items: []node.Node{ @@ -10061,21 +10062,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4418, + StartPos: 4417, EndPos: 4419, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4418, + StartPos: 4417, EndPos: 4419, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4418, + StartPos: 4417, EndPos: 4419, }, Value: "a", @@ -10086,21 +10087,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4422, + StartPos: 4421, EndPos: 4423, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4422, + StartPos: 4421, EndPos: 4423, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4422, + StartPos: 4421, EndPos: 4423, }, Value: "b", @@ -10113,14 +10114,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4428, + StartPos: 4427, EndPos: 4429, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4428, + StartPos: 4427, EndPos: 4429, }, Value: "b", @@ -10132,21 +10133,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4434, + StartPos: 4433, EndPos: 4449, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4434, + StartPos: 4433, EndPos: 4448, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4434, + StartPos: 4433, EndPos: 4443, }, Items: []node.Node{ @@ -10154,28 +10155,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4439, + StartPos: 4438, EndPos: 4442, }, Val: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4439, + StartPos: 4438, EndPos: 4442, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4439, + StartPos: 4438, EndPos: 4440, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4439, + StartPos: 4438, EndPos: 4440, }, Value: "a", @@ -10189,14 +10190,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4447, + StartPos: 4446, EndPos: 4448, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4447, + StartPos: 4446, EndPos: 4448, }, Value: "b", @@ -10208,21 +10209,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4453, + StartPos: 4452, EndPos: 4472, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4453, + StartPos: 4452, EndPos: 4471, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4453, + StartPos: 4452, EndPos: 4466, }, Items: []node.Node{ @@ -10230,14 +10231,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4458, + StartPos: 4457, EndPos: 4465, }, Val: &expr.List{ Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4458, + StartPos: 4457, EndPos: 4465, }, Items: []node.Node{ @@ -10245,21 +10246,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4463, + StartPos: 4462, EndPos: 4464, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4463, + StartPos: 4462, EndPos: 4464, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4463, + StartPos: 4462, EndPos: 4464, }, Value: "a", @@ -10275,14 +10276,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4470, + StartPos: 4469, EndPos: 4471, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4470, + StartPos: 4469, EndPos: 4471, }, Value: "b", @@ -10294,28 +10295,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4477, + StartPos: 4476, EndPos: 4486, }, Expr: &expr.MethodCall{ Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4477, + StartPos: 4476, EndPos: 4485, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4477, + StartPos: 4476, EndPos: 4478, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4477, + StartPos: 4476, EndPos: 4478, }, Value: "a", @@ -10325,7 +10326,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4481, + StartPos: 4480, EndPos: 4483, }, Value: "foo", @@ -10334,7 +10335,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4484, + StartPos: 4483, EndPos: 4485, }, }, @@ -10344,21 +10345,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4490, + StartPos: 4489, EndPos: 4497, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4490, + StartPos: 4489, EndPos: 4496, }, Class: &name.Name{ Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4494, + StartPos: 4493, EndPos: 4496, }, Parts: []node.Node{ @@ -10366,7 +10367,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4494, + StartPos: 4493, EndPos: 4496, }, Value: "Foo", @@ -10379,21 +10380,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4501, + StartPos: 4500, EndPos: 4520, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4501, + StartPos: 4500, EndPos: 4519, }, Class: &name.Relative{ Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4505, + StartPos: 4504, EndPos: 4517, }, Parts: []node.Node{ @@ -10401,7 +10402,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4515, + StartPos: 4514, EndPos: 4517, }, Value: "Foo", @@ -10412,7 +10413,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4518, + StartPos: 4517, EndPos: 4519, }, }, @@ -10422,21 +10423,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4524, + StartPos: 4523, EndPos: 4534, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4524, + StartPos: 4523, EndPos: 4533, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4528, + StartPos: 4527, EndPos: 4531, }, Parts: []node.Node{ @@ -10444,7 +10445,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4529, + StartPos: 4528, EndPos: 4531, }, Value: "Foo", @@ -10455,7 +10456,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4532, + StartPos: 4531, EndPos: 4533, }, }, @@ -10465,28 +10466,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4538, + StartPos: 4537, EndPos: 4547, }, Expr: &expr.Print{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4538, + StartPos: 4537, EndPos: 4545, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4544, + StartPos: 4543, EndPos: 4545, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4544, + StartPos: 4543, EndPos: 4545, }, Value: "a", @@ -10498,28 +10499,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4551, + StartPos: 4550, EndPos: 4558, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4551, + StartPos: 4550, EndPos: 4557, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4551, + StartPos: 4550, EndPos: 4552, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4551, + StartPos: 4550, EndPos: 4552, }, Value: "a", @@ -10529,7 +10530,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4555, + StartPos: 4554, EndPos: 4557, }, Value: "foo", @@ -10540,35 +10541,35 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4562, + StartPos: 4561, EndPos: 4572, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4562, + StartPos: 4561, EndPos: 4570, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4562, + StartPos: 4561, EndPos: 4568, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4562, + StartPos: 4561, EndPos: 4563, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4562, + StartPos: 4561, EndPos: 4563, }, Value: "a", @@ -10578,7 +10579,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4566, + StartPos: 4565, EndPos: 4568, }, Value: "foo", @@ -10588,7 +10589,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4570, + StartPos: 4569, EndPos: 4570, }, Value: "1", @@ -10599,56 +10600,56 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4576, + StartPos: 4575, EndPos: 4604, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4576, + StartPos: 4575, EndPos: 4602, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4576, + StartPos: 4575, EndPos: 4600, }, Variable: &expr.MethodCall{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4576, + StartPos: 4575, EndPos: 4594, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4576, + StartPos: 4575, EndPos: 4587, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4576, + StartPos: 4575, EndPos: 4582, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4576, + StartPos: 4575, EndPos: 4577, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4576, + StartPos: 4575, EndPos: 4577, }, Value: "a", @@ -10658,7 +10659,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4580, + StartPos: 4579, EndPos: 4582, }, Value: "foo", @@ -10668,7 +10669,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4585, + StartPos: 4584, EndPos: 4587, }, Value: "bar", @@ -10678,7 +10679,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4590, + StartPos: 4589, EndPos: 4592, }, Value: "baz", @@ -10687,7 +10688,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4593, + StartPos: 4592, EndPos: 4594, }, }, @@ -10696,7 +10697,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4597, + StartPos: 4596, EndPos: 4600, }, Value: "quux", @@ -10706,7 +10707,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4602, + StartPos: 4601, EndPos: 4602, }, Value: "0", @@ -10717,42 +10718,42 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4608, + StartPos: 4607, EndPos: 4623, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4608, + StartPos: 4607, EndPos: 4621, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4608, + StartPos: 4607, EndPos: 4618, }, Variable: &expr.MethodCall{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4608, + StartPos: 4607, EndPos: 4616, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4608, + StartPos: 4607, EndPos: 4609, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4608, + StartPos: 4607, EndPos: 4609, }, Value: "a", @@ -10762,7 +10763,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4612, + StartPos: 4611, EndPos: 4614, }, Value: "foo", @@ -10771,7 +10772,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4615, + StartPos: 4614, EndPos: 4616, }, }, @@ -10780,7 +10781,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4618, + StartPos: 4617, EndPos: 4618, }, Value: "1", @@ -10790,7 +10791,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4621, + StartPos: 4620, EndPos: 4621, }, Value: "1", @@ -10801,14 +10802,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4627, + StartPos: 4626, EndPos: 4635, }, Expr: &expr.ShellExec{ Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4627, + StartPos: 4626, EndPos: 4634, }, Parts: []node.Node{ @@ -10816,7 +10817,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4628, + StartPos: 4627, EndPos: 4631, }, Value: "cmd ", @@ -10825,14 +10826,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4632, + StartPos: 4631, EndPos: 4633, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4632, + StartPos: 4631, EndPos: 4633, }, Value: "a", @@ -10845,25 +10846,25 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4639, + StartPos: 4638, EndPos: 4644, }, Expr: &expr.ShellExec{ Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4639, + StartPos: 4638, EndPos: 4643, }, Parts: []node.Node{ &scalar.EncapsedStringPart{ - Value: "cmd", Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4640, + StartPos: 4639, EndPos: 4642, }, + Value: "cmd", }, }, }, @@ -10872,14 +10873,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4648, + StartPos: 4647, EndPos: 4650, }, Expr: &expr.ShellExec{ Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4648, + StartPos: 4647, EndPos: 4649, }, Parts: []node.Node{}, @@ -10889,14 +10890,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4654, + StartPos: 4653, EndPos: 4656, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4654, + StartPos: 4653, EndPos: 4655, }, Items: []node.Node{}, @@ -10906,14 +10907,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4660, + StartPos: 4659, EndPos: 4663, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4660, + StartPos: 4659, EndPos: 4662, }, Items: []node.Node{ @@ -10921,14 +10922,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4661, + StartPos: 4660, EndPos: 4661, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4661, + StartPos: 4660, EndPos: 4661, }, Value: "1", @@ -10941,14 +10942,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4667, + StartPos: 4666, EndPos: 4679, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4667, + StartPos: 4666, EndPos: 4678, }, Items: []node.Node{ @@ -10956,14 +10957,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4668, + StartPos: 4667, EndPos: 4671, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4668, + StartPos: 4667, EndPos: 4668, }, Value: "1", @@ -10972,7 +10973,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4671, + StartPos: 4670, EndPos: 4671, }, Value: "1", @@ -10982,28 +10983,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4674, + StartPos: 4673, EndPos: 4676, }, Val: &expr.Reference{ Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4674, + StartPos: 4673, EndPos: 4676, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4675, + StartPos: 4674, EndPos: 4676, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4675, + StartPos: 4674, EndPos: 4676, }, Value: "b", @@ -11019,21 +11020,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4684, + StartPos: 4683, EndPos: 4694, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4684, + StartPos: 4683, EndPos: 4693, }, Class: &name.Name{ Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4684, + StartPos: 4683, EndPos: 4686, }, Parts: []node.Node{ @@ -11041,7 +11042,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4684, + StartPos: 4683, EndPos: 4686, }, Value: "Foo", @@ -11052,7 +11053,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4689, + StartPos: 4688, EndPos: 4691, }, Value: "bar", @@ -11061,7 +11062,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4692, + StartPos: 4691, EndPos: 4693, }, }, @@ -11071,21 +11072,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4698, + StartPos: 4697, EndPos: 4718, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4698, + StartPos: 4697, EndPos: 4717, }, Class: &name.Relative{ Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4698, + StartPos: 4697, EndPos: 4710, }, Parts: []node.Node{ @@ -11093,7 +11094,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4708, + StartPos: 4707, EndPos: 4710, }, Value: "Foo", @@ -11104,7 +11105,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4713, + StartPos: 4712, EndPos: 4715, }, Value: "bar", @@ -11113,7 +11114,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4716, + StartPos: 4715, EndPos: 4717, }, }, @@ -11123,21 +11124,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4722, + StartPos: 4721, EndPos: 4733, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4722, + StartPos: 4721, EndPos: 4732, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4722, + StartPos: 4721, EndPos: 4725, }, Parts: []node.Node{ @@ -11145,7 +11146,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4723, + StartPos: 4722, EndPos: 4725, }, Value: "Foo", @@ -11156,7 +11157,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4728, + StartPos: 4727, EndPos: 4730, }, Value: "bar", @@ -11165,7 +11166,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4731, + StartPos: 4730, EndPos: 4732, }, }, @@ -11175,21 +11176,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4737, + StartPos: 4736, EndPos: 4748, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4737, + StartPos: 4736, EndPos: 4747, }, Class: &name.Name{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4737, + StartPos: 4736, EndPos: 4739, }, Parts: []node.Node{ @@ -11197,7 +11198,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4737, + StartPos: 4736, EndPos: 4739, }, Value: "Foo", @@ -11208,14 +11209,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4742, + StartPos: 4741, EndPos: 4745, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4742, + StartPos: 4741, EndPos: 4745, }, Value: "bar", @@ -11225,7 +11226,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4746, + StartPos: 4745, EndPos: 4747, }, }, @@ -11235,28 +11236,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4752, + StartPos: 4751, EndPos: 4764, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4752, + StartPos: 4751, EndPos: 4763, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4752, + StartPos: 4751, EndPos: 4755, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4752, + StartPos: 4751, EndPos: 4755, }, Value: "foo", @@ -11266,14 +11267,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4758, + StartPos: 4757, EndPos: 4761, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4758, + StartPos: 4757, EndPos: 4761, }, Value: "bar", @@ -11283,7 +11284,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4762, + StartPos: 4761, EndPos: 4763, }, }, @@ -11293,21 +11294,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4768, + StartPos: 4767, EndPos: 4777, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4768, + StartPos: 4767, EndPos: 4776, }, Class: &name.Name{ Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4768, + StartPos: 4767, EndPos: 4770, }, Parts: []node.Node{ @@ -11315,7 +11316,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4768, + StartPos: 4767, EndPos: 4770, }, Value: "Foo", @@ -11326,14 +11327,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4773, + StartPos: 4772, EndPos: 4776, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4773, + StartPos: 4772, EndPos: 4776, }, Value: "bar", @@ -11345,21 +11346,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4781, + StartPos: 4780, EndPos: 4800, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4781, + StartPos: 4780, EndPos: 4799, }, Class: &name.Relative{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4781, + StartPos: 4780, EndPos: 4793, }, Parts: []node.Node{ @@ -11367,7 +11368,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4791, + StartPos: 4790, EndPos: 4793, }, Value: "Foo", @@ -11378,14 +11379,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4796, + StartPos: 4795, EndPos: 4799, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4796, + StartPos: 4795, EndPos: 4799, }, Value: "bar", @@ -11397,21 +11398,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4804, + StartPos: 4803, EndPos: 4814, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4804, + StartPos: 4803, EndPos: 4813, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4804, + StartPos: 4803, EndPos: 4807, }, Parts: []node.Node{ @@ -11419,7 +11420,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4805, + StartPos: 4804, EndPos: 4807, }, Value: "Foo", @@ -11430,14 +11431,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4810, + StartPos: 4809, EndPos: 4813, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4810, + StartPos: 4809, EndPos: 4813, }, Value: "bar", @@ -11449,28 +11450,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4818, + StartPos: 4817, EndPos: 4830, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4818, + StartPos: 4817, EndPos: 4829, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4818, + StartPos: 4817, EndPos: 4819, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4818, + StartPos: 4817, EndPos: 4819, }, Value: "a", @@ -11480,14 +11481,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4823, + StartPos: 4822, EndPos: 4824, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4823, + StartPos: 4822, EndPos: 4824, }, Value: "b", @@ -11497,14 +11498,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4828, + StartPos: 4827, EndPos: 4829, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4828, + StartPos: 4827, EndPos: 4829, }, Value: "c", @@ -11516,28 +11517,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4834, + StartPos: 4833, EndPos: 4843, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4834, + StartPos: 4833, EndPos: 4842, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4834, + StartPos: 4833, EndPos: 4835, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4834, + StartPos: 4833, EndPos: 4835, }, Value: "a", @@ -11547,14 +11548,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4841, + StartPos: 4840, EndPos: 4842, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4841, + StartPos: 4840, EndPos: 4842, }, Value: "c", @@ -11566,28 +11567,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4847, + StartPos: 4846, EndPos: 4869, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4847, + StartPos: 4846, EndPos: 4868, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4847, + StartPos: 4846, EndPos: 4848, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4847, + StartPos: 4846, EndPos: 4848, }, Value: "a", @@ -11597,21 +11598,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4852, + StartPos: 4851, EndPos: 4863, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4852, + StartPos: 4851, EndPos: 4853, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4852, + StartPos: 4851, EndPos: 4853, }, Value: "b", @@ -11621,14 +11622,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4857, + StartPos: 4856, EndPos: 4858, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4857, + StartPos: 4856, EndPos: 4858, }, Value: "c", @@ -11638,14 +11639,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4862, + StartPos: 4861, EndPos: 4863, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4862, + StartPos: 4861, EndPos: 4863, }, Value: "d", @@ -11656,14 +11657,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4867, + StartPos: 4866, EndPos: 4868, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4867, + StartPos: 4866, EndPos: 4868, }, Value: "e", @@ -11675,35 +11676,35 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4873, + StartPos: 4872, EndPos: 4895, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4873, + StartPos: 4872, EndPos: 4894, }, Condition: &expr.Ternary{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4873, + StartPos: 4872, EndPos: 4884, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4873, + StartPos: 4872, EndPos: 4874, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4873, + StartPos: 4872, EndPos: 4874, }, Value: "a", @@ -11713,14 +11714,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4878, + StartPos: 4877, EndPos: 4879, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4878, + StartPos: 4877, EndPos: 4879, }, Value: "b", @@ -11730,14 +11731,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4883, + StartPos: 4882, EndPos: 4884, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4883, + StartPos: 4882, EndPos: 4884, }, Value: "c", @@ -11748,14 +11749,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4888, + StartPos: 4887, EndPos: 4889, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4888, + StartPos: 4887, EndPos: 4889, }, Value: "d", @@ -11765,14 +11766,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4893, + StartPos: 4892, EndPos: 4894, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4893, + StartPos: 4892, EndPos: 4894, }, Value: "e", @@ -11784,28 +11785,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4899, + StartPos: 4898, EndPos: 4902, }, Expr: &expr.UnaryMinus{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4899, + StartPos: 4898, EndPos: 4901, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4900, + StartPos: 4899, EndPos: 4901, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4900, + StartPos: 4899, EndPos: 4901, }, Value: "a", @@ -11817,28 +11818,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4906, + StartPos: 4905, EndPos: 4909, }, Expr: &expr.UnaryPlus{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4906, + StartPos: 4905, EndPos: 4908, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4907, + StartPos: 4906, EndPos: 4908, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4907, + StartPos: 4906, EndPos: 4908, }, Value: "a", @@ -11850,28 +11851,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4913, + StartPos: 4912, EndPos: 4916, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4913, + StartPos: 4912, EndPos: 4915, }, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4914, + StartPos: 4913, EndPos: 4915, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4914, + StartPos: 4913, EndPos: 4915, }, Value: "a", @@ -11883,35 +11884,35 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4920, + StartPos: 4919, EndPos: 4924, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4920, + StartPos: 4919, EndPos: 4923, }, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4921, + StartPos: 4920, EndPos: 4923, }, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4922, + StartPos: 4921, EndPos: 4923, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4922, + StartPos: 4921, EndPos: 4923, }, Value: "a", @@ -11924,14 +11925,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4928, + StartPos: 4927, EndPos: 4933, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4928, + StartPos: 4927, EndPos: 4932, }, }, @@ -11940,28 +11941,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4937, + StartPos: 4936, EndPos: 4945, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4937, + StartPos: 4936, EndPos: 4944, }, Value: &expr.Variable{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4943, + StartPos: 4942, EndPos: 4944, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4943, + StartPos: 4942, EndPos: 4944, }, Value: "a", @@ -11973,28 +11974,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4949, + StartPos: 4948, EndPos: 4963, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4949, + StartPos: 4948, EndPos: 4962, }, Key: &expr.Variable{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4955, + StartPos: 4954, EndPos: 4956, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4955, + StartPos: 4954, EndPos: 4956, }, Value: "a", @@ -12004,14 +12005,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4961, + StartPos: 4960, EndPos: 4962, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4961, + StartPos: 4960, EndPos: 4962, }, Value: "b", @@ -12023,28 +12024,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4967, + StartPos: 4966, EndPos: 4983, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4967, + StartPos: 4966, EndPos: 4982, }, Value: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4973, + StartPos: 4972, EndPos: 4982, }, Class: &name.Name{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4973, + StartPos: 4972, EndPos: 4975, }, Parts: []node.Node{ @@ -12052,7 +12053,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4973, + StartPos: 4972, EndPos: 4975, }, Value: "Foo", @@ -12063,7 +12064,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4978, + StartPos: 4977, EndPos: 4982, }, Value: "class", @@ -12075,28 +12076,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4987, + StartPos: 4986, EndPos: 5009, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4987, + StartPos: 4986, EndPos: 5008, }, Key: &expr.Variable{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4993, + StartPos: 4992, EndPos: 4994, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4993, + StartPos: 4992, EndPos: 4994, }, Value: "a", @@ -12106,14 +12107,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4999, + StartPos: 4998, EndPos: 5008, }, Class: &name.Name{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4999, + StartPos: 4998, EndPos: 5001, }, Parts: []node.Node{ @@ -12121,7 +12122,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4999, + StartPos: 4998, EndPos: 5001, }, Value: "Foo", @@ -12132,7 +12133,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5004, + StartPos: 5003, EndPos: 5008, }, Value: "class", @@ -12144,28 +12145,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5016, + StartPos: 5015, EndPos: 5025, }, Expr: &cast.Array{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5016, + StartPos: 5015, EndPos: 5024, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5023, + StartPos: 5022, EndPos: 5024, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5023, + StartPos: 5022, EndPos: 5024, }, Value: "a", @@ -12177,28 +12178,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5029, + StartPos: 5028, EndPos: 5040, }, Expr: &cast.Bool{ Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5029, + StartPos: 5028, EndPos: 5039, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5038, + StartPos: 5037, EndPos: 5039, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5038, + StartPos: 5037, EndPos: 5039, }, Value: "a", @@ -12210,28 +12211,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5044, + StartPos: 5043, EndPos: 5052, }, Expr: &cast.Bool{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5044, + StartPos: 5043, EndPos: 5051, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5050, + StartPos: 5049, EndPos: 5051, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5050, + StartPos: 5049, EndPos: 5051, }, Value: "a", @@ -12243,28 +12244,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5056, + StartPos: 5055, EndPos: 5066, }, Expr: &cast.Double{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5056, + StartPos: 5055, EndPos: 5065, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5064, + StartPos: 5063, EndPos: 5065, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5064, + StartPos: 5063, EndPos: 5065, }, Value: "a", @@ -12276,28 +12277,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5070, + StartPos: 5069, EndPos: 5079, }, Expr: &cast.Double{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5070, + StartPos: 5069, EndPos: 5078, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5077, + StartPos: 5076, EndPos: 5078, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5077, + StartPos: 5076, EndPos: 5078, }, Value: "a", @@ -12309,28 +12310,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5083, + StartPos: 5082, EndPos: 5094, }, Expr: &cast.Int{ Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5083, + StartPos: 5082, EndPos: 5093, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5092, + StartPos: 5091, EndPos: 5093, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5092, + StartPos: 5091, EndPos: 5093, }, Value: "a", @@ -12342,28 +12343,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5098, + StartPos: 5097, EndPos: 5105, }, Expr: &cast.Int{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5098, + StartPos: 5097, EndPos: 5104, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5103, + StartPos: 5102, EndPos: 5104, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5103, + StartPos: 5102, EndPos: 5104, }, Value: "a", @@ -12375,28 +12376,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5109, + StartPos: 5108, EndPos: 5119, }, Expr: &cast.Object{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5109, + StartPos: 5108, EndPos: 5118, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5117, + StartPos: 5116, EndPos: 5118, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5117, + StartPos: 5116, EndPos: 5118, }, Value: "a", @@ -12408,28 +12409,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5123, + StartPos: 5122, EndPos: 5133, }, Expr: &cast.String{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5123, + StartPos: 5122, EndPos: 5132, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5131, + StartPos: 5130, EndPos: 5132, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5131, + StartPos: 5130, EndPos: 5132, }, Value: "a", @@ -12441,28 +12442,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5137, + StartPos: 5136, EndPos: 5146, }, Expr: &cast.Unset{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5137, + StartPos: 5136, EndPos: 5145, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5144, + StartPos: 5143, EndPos: 5145, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5144, + StartPos: 5143, EndPos: 5145, }, Value: "a", @@ -12474,28 +12475,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5151, + StartPos: 5150, EndPos: 5158, }, Expr: &binary.BitwiseAnd{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5151, + StartPos: 5150, EndPos: 5157, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5151, + StartPos: 5150, EndPos: 5152, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5151, + StartPos: 5150, EndPos: 5152, }, Value: "a", @@ -12505,14 +12506,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5156, + StartPos: 5155, EndPos: 5157, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5156, + StartPos: 5155, EndPos: 5157, }, Value: "b", @@ -12524,28 +12525,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5162, + StartPos: 5161, EndPos: 5169, }, Expr: &binary.BitwiseOr{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5162, + StartPos: 5161, EndPos: 5168, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5162, + StartPos: 5161, EndPos: 5163, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5162, + StartPos: 5161, EndPos: 5163, }, Value: "a", @@ -12555,14 +12556,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5167, + StartPos: 5166, EndPos: 5168, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5167, + StartPos: 5166, EndPos: 5168, }, Value: "b", @@ -12574,28 +12575,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5173, + StartPos: 5172, EndPos: 5180, }, Expr: &binary.BitwiseXor{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5173, + StartPos: 5172, EndPos: 5179, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5173, + StartPos: 5172, EndPos: 5174, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5173, + StartPos: 5172, EndPos: 5174, }, Value: "a", @@ -12605,14 +12606,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5178, + StartPos: 5177, EndPos: 5179, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5178, + StartPos: 5177, EndPos: 5179, }, Value: "b", @@ -12624,28 +12625,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5184, + StartPos: 5183, EndPos: 5192, }, Expr: &binary.BooleanAnd{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5184, + StartPos: 5183, EndPos: 5191, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5184, + StartPos: 5183, EndPos: 5185, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5184, + StartPos: 5183, EndPos: 5185, }, Value: "a", @@ -12655,14 +12656,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5190, + StartPos: 5189, EndPos: 5191, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5190, + StartPos: 5189, EndPos: 5191, }, Value: "b", @@ -12674,28 +12675,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5196, + StartPos: 5195, EndPos: 5204, }, Expr: &binary.BooleanOr{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5196, + StartPos: 5195, EndPos: 5203, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5196, + StartPos: 5195, EndPos: 5197, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5196, + StartPos: 5195, EndPos: 5197, }, Value: "a", @@ -12705,14 +12706,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5202, + StartPos: 5201, EndPos: 5203, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5202, + StartPos: 5201, EndPos: 5203, }, Value: "b", @@ -12724,28 +12725,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5208, + StartPos: 5207, EndPos: 5215, }, Expr: &binary.Concat{ Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5208, + StartPos: 5207, EndPos: 5214, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5208, + StartPos: 5207, EndPos: 5209, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5208, + StartPos: 5207, EndPos: 5209, }, Value: "a", @@ -12755,14 +12756,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5213, + StartPos: 5212, EndPos: 5214, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5213, + StartPos: 5212, EndPos: 5214, }, Value: "b", @@ -12774,28 +12775,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5219, + StartPos: 5218, EndPos: 5226, }, Expr: &binary.Div{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5219, + StartPos: 5218, EndPos: 5225, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5219, + StartPos: 5218, EndPos: 5220, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5219, + StartPos: 5218, EndPos: 5220, }, Value: "a", @@ -12805,14 +12806,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5224, + StartPos: 5223, EndPos: 5225, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5224, + StartPos: 5223, EndPos: 5225, }, Value: "b", @@ -12824,28 +12825,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5230, + StartPos: 5229, EndPos: 5238, }, Expr: &binary.Equal{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5230, + StartPos: 5229, EndPos: 5237, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5230, + StartPos: 5229, EndPos: 5231, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5230, + StartPos: 5229, EndPos: 5231, }, Value: "a", @@ -12855,14 +12856,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5236, + StartPos: 5235, EndPos: 5237, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5236, + StartPos: 5235, EndPos: 5237, }, Value: "b", @@ -12874,28 +12875,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5242, + StartPos: 5241, EndPos: 5250, }, Expr: &binary.GreaterOrEqual{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5242, + StartPos: 5241, EndPos: 5249, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5242, + StartPos: 5241, EndPos: 5243, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5242, + StartPos: 5241, EndPos: 5243, }, Value: "a", @@ -12905,14 +12906,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5248, + StartPos: 5247, EndPos: 5249, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5248, + StartPos: 5247, EndPos: 5249, }, Value: "b", @@ -12924,28 +12925,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5254, + StartPos: 5253, EndPos: 5261, }, Expr: &binary.Greater{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5254, + StartPos: 5253, EndPos: 5260, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5254, + StartPos: 5253, EndPos: 5255, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5254, + StartPos: 5253, EndPos: 5255, }, Value: "a", @@ -12955,14 +12956,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5259, + StartPos: 5258, EndPos: 5260, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5259, + StartPos: 5258, EndPos: 5260, }, Value: "b", @@ -12974,28 +12975,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5265, + StartPos: 5264, EndPos: 5274, }, Expr: &binary.Identical{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5265, + StartPos: 5264, EndPos: 5273, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5265, + StartPos: 5264, EndPos: 5266, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5265, + StartPos: 5264, EndPos: 5266, }, Value: "a", @@ -13005,14 +13006,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5272, + StartPos: 5271, EndPos: 5273, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5272, + StartPos: 5271, EndPos: 5273, }, Value: "b", @@ -13024,28 +13025,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5278, + StartPos: 5277, EndPos: 5287, }, Expr: &binary.LogicalAnd{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5278, + StartPos: 5277, EndPos: 5286, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5278, + StartPos: 5277, EndPos: 5279, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5278, + StartPos: 5277, EndPos: 5279, }, Value: "a", @@ -13055,14 +13056,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5285, + StartPos: 5284, EndPos: 5286, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5285, + StartPos: 5284, EndPos: 5286, }, Value: "b", @@ -13074,28 +13075,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5291, + StartPos: 5290, EndPos: 5299, }, Expr: &binary.LogicalOr{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5291, + StartPos: 5290, EndPos: 5298, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5291, + StartPos: 5290, EndPos: 5292, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5291, + StartPos: 5290, EndPos: 5292, }, Value: "a", @@ -13105,14 +13106,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5297, + StartPos: 5296, EndPos: 5298, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5297, + StartPos: 5296, EndPos: 5298, }, Value: "b", @@ -13124,28 +13125,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5303, + StartPos: 5302, EndPos: 5312, }, Expr: &binary.LogicalXor{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5303, + StartPos: 5302, EndPos: 5311, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5303, + StartPos: 5302, EndPos: 5304, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5303, + StartPos: 5302, EndPos: 5304, }, Value: "a", @@ -13155,14 +13156,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5310, + StartPos: 5309, EndPos: 5311, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5310, + StartPos: 5309, EndPos: 5311, }, Value: "b", @@ -13174,28 +13175,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5316, + StartPos: 5315, EndPos: 5323, }, Expr: &binary.Minus{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5316, + StartPos: 5315, EndPos: 5322, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5316, + StartPos: 5315, EndPos: 5317, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5316, + StartPos: 5315, EndPos: 5317, }, Value: "a", @@ -13205,14 +13206,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5321, + StartPos: 5320, EndPos: 5322, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5321, + StartPos: 5320, EndPos: 5322, }, Value: "b", @@ -13224,28 +13225,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5327, + StartPos: 5326, EndPos: 5334, }, Expr: &binary.Mod{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5327, + StartPos: 5326, EndPos: 5333, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5327, + StartPos: 5326, EndPos: 5328, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5327, + StartPos: 5326, EndPos: 5328, }, Value: "a", @@ -13255,14 +13256,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5332, + StartPos: 5331, EndPos: 5333, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5332, + StartPos: 5331, EndPos: 5333, }, Value: "b", @@ -13274,28 +13275,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5338, + StartPos: 5337, EndPos: 5345, }, Expr: &binary.Mul{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5338, + StartPos: 5337, EndPos: 5344, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5338, + StartPos: 5337, EndPos: 5339, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5338, + StartPos: 5337, EndPos: 5339, }, Value: "a", @@ -13305,14 +13306,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5343, + StartPos: 5342, EndPos: 5344, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5343, + StartPos: 5342, EndPos: 5344, }, Value: "b", @@ -13324,28 +13325,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5349, + StartPos: 5348, EndPos: 5357, }, Expr: &binary.NotEqual{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5349, + StartPos: 5348, EndPos: 5356, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5349, + StartPos: 5348, EndPos: 5350, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5349, + StartPos: 5348, EndPos: 5350, }, Value: "a", @@ -13355,14 +13356,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5355, + StartPos: 5354, EndPos: 5356, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5355, + StartPos: 5354, EndPos: 5356, }, Value: "b", @@ -13374,28 +13375,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5361, + StartPos: 5360, EndPos: 5370, }, Expr: &binary.NotIdentical{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5361, + StartPos: 5360, EndPos: 5369, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5361, + StartPos: 5360, EndPos: 5362, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5361, + StartPos: 5360, EndPos: 5362, }, Value: "a", @@ -13405,14 +13406,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5368, + StartPos: 5367, EndPos: 5369, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5368, + StartPos: 5367, EndPos: 5369, }, Value: "b", @@ -13424,28 +13425,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5374, + StartPos: 5373, EndPos: 5381, }, Expr: &binary.Plus{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5374, + StartPos: 5373, EndPos: 5380, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5374, + StartPos: 5373, EndPos: 5375, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5374, + StartPos: 5373, EndPos: 5375, }, Value: "a", @@ -13455,14 +13456,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5379, + StartPos: 5378, EndPos: 5380, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5379, + StartPos: 5378, EndPos: 5380, }, Value: "b", @@ -13474,28 +13475,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5385, + StartPos: 5384, EndPos: 5393, }, Expr: &binary.Pow{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5385, + StartPos: 5384, EndPos: 5392, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5385, + StartPos: 5384, EndPos: 5386, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5385, + StartPos: 5384, EndPos: 5386, }, Value: "a", @@ -13505,14 +13506,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5391, + StartPos: 5390, EndPos: 5392, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5391, + StartPos: 5390, EndPos: 5392, }, Value: "b", @@ -13524,28 +13525,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5397, + StartPos: 5396, EndPos: 5405, }, Expr: &binary.ShiftLeft{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5397, + StartPos: 5396, EndPos: 5404, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5397, + StartPos: 5396, EndPos: 5398, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5397, + StartPos: 5396, EndPos: 5398, }, Value: "a", @@ -13555,14 +13556,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5403, + StartPos: 5402, EndPos: 5404, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5403, + StartPos: 5402, EndPos: 5404, }, Value: "b", @@ -13574,28 +13575,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5409, + StartPos: 5408, EndPos: 5417, }, Expr: &binary.ShiftRight{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5409, + StartPos: 5408, EndPos: 5416, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5409, + StartPos: 5408, EndPos: 5410, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5409, + StartPos: 5408, EndPos: 5410, }, Value: "a", @@ -13605,14 +13606,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5415, + StartPos: 5414, EndPos: 5416, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5415, + StartPos: 5414, EndPos: 5416, }, Value: "b", @@ -13624,28 +13625,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5421, + StartPos: 5420, EndPos: 5429, }, Expr: &binary.SmallerOrEqual{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5421, + StartPos: 5420, EndPos: 5428, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5421, + StartPos: 5420, EndPos: 5422, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5421, + StartPos: 5420, EndPos: 5422, }, Value: "a", @@ -13655,14 +13656,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5427, + StartPos: 5426, EndPos: 5428, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5427, + StartPos: 5426, EndPos: 5428, }, Value: "b", @@ -13674,28 +13675,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5433, + StartPos: 5432, EndPos: 5440, }, Expr: &binary.Smaller{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5433, + StartPos: 5432, EndPos: 5439, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5433, + StartPos: 5432, EndPos: 5434, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5433, + StartPos: 5432, EndPos: 5434, }, Value: "a", @@ -13705,14 +13706,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5438, + StartPos: 5437, EndPos: 5439, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5438, + StartPos: 5437, EndPos: 5439, }, Value: "b", @@ -13724,28 +13725,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5445, + StartPos: 5444, EndPos: 5453, }, Expr: &assign.Reference{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5445, + StartPos: 5444, EndPos: 5452, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5445, + StartPos: 5444, EndPos: 5446, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5445, + StartPos: 5444, EndPos: 5446, }, Value: "a", @@ -13755,14 +13756,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5451, + StartPos: 5450, EndPos: 5452, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5451, + StartPos: 5450, EndPos: 5452, }, Value: "b", @@ -13774,28 +13775,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5457, + StartPos: 5456, EndPos: 5470, }, Expr: &assign.Reference{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5457, + StartPos: 5456, EndPos: 5469, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5457, + StartPos: 5456, EndPos: 5458, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5457, + StartPos: 5456, EndPos: 5458, }, Value: "a", @@ -13805,14 +13806,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5463, + StartPos: 5462, EndPos: 5469, }, Class: &name.Name{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5467, + StartPos: 5466, EndPos: 5469, }, Parts: []node.Node{ @@ -13820,7 +13821,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5467, + StartPos: 5466, EndPos: 5469, }, Value: "Foo", @@ -13834,28 +13835,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5474, + StartPos: 5473, EndPos: 5491, }, Expr: &assign.Reference{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5474, + StartPos: 5473, EndPos: 5490, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5474, + StartPos: 5473, EndPos: 5475, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5474, + StartPos: 5473, EndPos: 5475, }, Value: "a", @@ -13865,14 +13866,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5480, + StartPos: 5479, EndPos: 5490, }, Class: &name.Name{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5484, + StartPos: 5483, EndPos: 5486, }, Parts: []node.Node{ @@ -13880,7 +13881,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5484, + StartPos: 5483, EndPos: 5486, }, Value: "Foo", @@ -13891,7 +13892,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5487, + StartPos: 5486, EndPos: 5490, }, Arguments: []node.Node{ @@ -13899,23 +13900,23 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5488, + StartPos: 5487, EndPos: 5489, }, - Variadic: false, IsReference: false, + Variadic: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5488, + StartPos: 5487, EndPos: 5489, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5488, + StartPos: 5487, EndPos: 5489, }, Value: "b", @@ -13931,28 +13932,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5495, + StartPos: 5494, EndPos: 5502, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5495, + StartPos: 5494, EndPos: 5501, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5495, + StartPos: 5494, EndPos: 5496, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5495, + StartPos: 5494, EndPos: 5496, }, Value: "a", @@ -13962,14 +13963,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5500, + StartPos: 5499, EndPos: 5501, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5500, + StartPos: 5499, EndPos: 5501, }, Value: "b", @@ -13981,28 +13982,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5506, + StartPos: 5505, EndPos: 5514, }, Expr: &assign.BitwiseAnd{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5506, + StartPos: 5505, EndPos: 5513, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5506, + StartPos: 5505, EndPos: 5507, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5506, + StartPos: 5505, EndPos: 5507, }, Value: "a", @@ -14012,14 +14013,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5512, + StartPos: 5511, EndPos: 5513, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5512, + StartPos: 5511, EndPos: 5513, }, Value: "b", @@ -14031,28 +14032,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5518, + StartPos: 5517, EndPos: 5526, }, Expr: &assign.BitwiseOr{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5518, + StartPos: 5517, EndPos: 5525, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5518, + StartPos: 5517, EndPos: 5519, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5518, + StartPos: 5517, EndPos: 5519, }, Value: "a", @@ -14062,14 +14063,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5524, + StartPos: 5523, EndPos: 5525, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5524, + StartPos: 5523, EndPos: 5525, }, Value: "b", @@ -14081,28 +14082,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5530, + StartPos: 5529, EndPos: 5538, }, Expr: &assign.BitwiseXor{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5530, + StartPos: 5529, EndPos: 5537, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5530, + StartPos: 5529, EndPos: 5531, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5530, + StartPos: 5529, EndPos: 5531, }, Value: "a", @@ -14112,14 +14113,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5536, + StartPos: 5535, EndPos: 5537, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5536, + StartPos: 5535, EndPos: 5537, }, Value: "b", @@ -14131,28 +14132,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5542, + StartPos: 5541, EndPos: 5550, }, Expr: &assign.Concat{ Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5542, + StartPos: 5541, EndPos: 5549, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5542, + StartPos: 5541, EndPos: 5543, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5542, + StartPos: 5541, EndPos: 5543, }, Value: "a", @@ -14162,14 +14163,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5548, + StartPos: 5547, EndPos: 5549, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5548, + StartPos: 5547, EndPos: 5549, }, Value: "b", @@ -14181,28 +14182,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5554, + StartPos: 5553, EndPos: 5562, }, Expr: &assign.Div{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5554, + StartPos: 5553, EndPos: 5561, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5554, + StartPos: 5553, EndPos: 5555, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5554, + StartPos: 5553, EndPos: 5555, }, Value: "a", @@ -14212,14 +14213,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5560, + StartPos: 5559, EndPos: 5561, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5560, + StartPos: 5559, EndPos: 5561, }, Value: "b", @@ -14231,28 +14232,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5566, + StartPos: 5565, EndPos: 5574, }, Expr: &assign.Minus{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5566, + StartPos: 5565, EndPos: 5573, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5566, + StartPos: 5565, EndPos: 5567, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5566, + StartPos: 5565, EndPos: 5567, }, Value: "a", @@ -14262,14 +14263,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5572, + StartPos: 5571, EndPos: 5573, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5572, + StartPos: 5571, EndPos: 5573, }, Value: "b", @@ -14281,28 +14282,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5578, + StartPos: 5577, EndPos: 5586, }, Expr: &assign.Mod{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5578, + StartPos: 5577, EndPos: 5585, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5578, + StartPos: 5577, EndPos: 5579, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5578, + StartPos: 5577, EndPos: 5579, }, Value: "a", @@ -14312,14 +14313,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5584, + StartPos: 5583, EndPos: 5585, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5584, + StartPos: 5583, EndPos: 5585, }, Value: "b", @@ -14331,28 +14332,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5590, + StartPos: 5589, EndPos: 5598, }, Expr: &assign.Mul{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5590, + StartPos: 5589, EndPos: 5597, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5590, + StartPos: 5589, EndPos: 5591, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5590, + StartPos: 5589, EndPos: 5591, }, Value: "a", @@ -14362,14 +14363,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5596, + StartPos: 5595, EndPos: 5597, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5596, + StartPos: 5595, EndPos: 5597, }, Value: "b", @@ -14381,28 +14382,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5602, + StartPos: 5601, EndPos: 5610, }, Expr: &assign.Plus{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5602, + StartPos: 5601, EndPos: 5609, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5602, + StartPos: 5601, EndPos: 5603, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5602, + StartPos: 5601, EndPos: 5603, }, Value: "a", @@ -14412,14 +14413,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5608, + StartPos: 5607, EndPos: 5609, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5608, + StartPos: 5607, EndPos: 5609, }, Value: "b", @@ -14431,28 +14432,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5614, + StartPos: 5613, EndPos: 5623, }, Expr: &assign.Pow{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5614, + StartPos: 5613, EndPos: 5622, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5614, + StartPos: 5613, EndPos: 5615, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5614, + StartPos: 5613, EndPos: 5615, }, Value: "a", @@ -14462,14 +14463,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5621, + StartPos: 5620, EndPos: 5622, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5621, + StartPos: 5620, EndPos: 5622, }, Value: "b", @@ -14481,28 +14482,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5627, + StartPos: 5626, EndPos: 5636, }, Expr: &assign.ShiftLeft{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5627, + StartPos: 5626, EndPos: 5635, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5627, + StartPos: 5626, EndPos: 5628, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5627, + StartPos: 5626, EndPos: 5628, }, Value: "a", @@ -14512,14 +14513,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5634, + StartPos: 5633, EndPos: 5635, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5634, + StartPos: 5633, EndPos: 5635, }, Value: "b", @@ -14531,28 +14532,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5640, + StartPos: 5639, EndPos: 5649, }, Expr: &assign.ShiftRight{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5640, + StartPos: 5639, EndPos: 5648, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5640, + StartPos: 5639, EndPos: 5641, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5640, + StartPos: 5639, EndPos: 5641, }, Value: "a", @@ -14562,14 +14563,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5647, + StartPos: 5646, EndPos: 5648, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5647, + StartPos: 5646, EndPos: 5648, }, Value: "b", @@ -14581,21 +14582,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5656, + StartPos: 5655, EndPos: 5667, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5656, + StartPos: 5655, EndPos: 5665, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5660, + StartPos: 5659, EndPos: 5663, }, Parts: []node.Node{ @@ -14603,7 +14604,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5661, + StartPos: 5660, EndPos: 5663, }, Value: "Foo", @@ -14614,7 +14615,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5664, + StartPos: 5663, EndPos: 5665, }, }, @@ -14624,35 +14625,35 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5692, + StartPos: 5691, EndPos: 5695, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5692, + StartPos: 5691, EndPos: 5694, }, Variable: &expr.MethodCall{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5688, + StartPos: 5687, EndPos: 5689, }, Variable: &expr.New{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5672, + StartPos: 5671, EndPos: 5681, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5676, + StartPos: 5675, EndPos: 5679, }, Parts: []node.Node{ @@ -14660,7 +14661,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5677, + StartPos: 5676, EndPos: 5679, }, Value: "Foo", @@ -14671,7 +14672,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5680, + StartPos: 5679, EndPos: 5681, }, }, @@ -14680,7 +14681,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5685, + StartPos: 5684, EndPos: 5687, }, Value: "bar", @@ -14689,7 +14690,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5688, + StartPos: 5687, EndPos: 5689, }, }, @@ -14698,7 +14699,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5692, + StartPos: 5691, EndPos: 5694, }, Value: "baz", @@ -14709,35 +14710,35 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5715, + StartPos: 5714, EndPos: 5717, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5715, + StartPos: 5714, EndPos: 5715, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5712, + StartPos: 5711, EndPos: 5712, }, Variable: &expr.New{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5700, + StartPos: 5699, EndPos: 5709, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5704, + StartPos: 5703, EndPos: 5707, }, Parts: []node.Node{ @@ -14745,7 +14746,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5705, + StartPos: 5704, EndPos: 5707, }, Value: "Foo", @@ -14756,7 +14757,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5708, + StartPos: 5707, EndPos: 5709, }, }, @@ -14765,7 +14766,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5712, + StartPos: 5711, EndPos: 5712, }, Value: "0", @@ -14775,7 +14776,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5715, + StartPos: 5714, EndPos: 5715, }, Value: "0", @@ -14786,35 +14787,35 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5741, + StartPos: 5740, EndPos: 5743, }, Expr: &expr.MethodCall{ Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5741, + StartPos: 5740, EndPos: 5742, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5734, + StartPos: 5733, EndPos: 5734, }, Variable: &expr.New{ Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5722, + StartPos: 5721, EndPos: 5731, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5726, + StartPos: 5725, EndPos: 5729, }, Parts: []node.Node{ @@ -14822,7 +14823,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5727, + StartPos: 5726, EndPos: 5729, }, Value: "Foo", @@ -14833,7 +14834,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5730, + StartPos: 5729, EndPos: 5731, }, }, @@ -14842,7 +14843,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5734, + StartPos: 5733, EndPos: 5734, }, Value: "0", @@ -14852,7 +14853,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5738, + StartPos: 5737, EndPos: 5740, }, Value: "bar", @@ -14861,7 +14862,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5741, + StartPos: 5740, EndPos: 5742, }, }, @@ -14871,28 +14872,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5748, + StartPos: 5747, EndPos: 5764, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5748, + StartPos: 5747, EndPos: 5763, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5748, + StartPos: 5747, EndPos: 5760, }, Variable: &expr.Array{ Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5748, + StartPos: 5747, EndPos: 5757, }, Items: []node.Node{ @@ -14900,14 +14901,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5754, + StartPos: 5753, EndPos: 5756, }, Val: &expr.ShortArray{ Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5754, + StartPos: 5753, EndPos: 5756, }, Items: []node.Node{ @@ -14915,14 +14916,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5755, + StartPos: 5754, EndPos: 5755, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5755, + StartPos: 5754, EndPos: 5755, }, Value: "0", @@ -14937,7 +14938,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5759, + StartPos: 5758, EndPos: 5759, }, Value: "0", @@ -14947,7 +14948,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5762, + StartPos: 5761, EndPos: 5762, }, Value: "0", @@ -14958,21 +14959,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5768, + StartPos: 5767, EndPos: 5776, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5768, + StartPos: 5767, EndPos: 5775, }, Variable: &scalar.String{ Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5768, + StartPos: 5767, EndPos: 5772, }, Value: "\"foo\"", @@ -14981,7 +14982,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5774, + StartPos: 5773, EndPos: 5774, }, Value: "0", @@ -14992,28 +14993,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5780, + StartPos: 5779, EndPos: 5786, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5780, + StartPos: 5779, EndPos: 5785, }, Variable: &expr.ConstFetch{ Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5780, + StartPos: 5779, EndPos: 5782, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5780, + StartPos: 5779, EndPos: 5782, }, Parts: []node.Node{ @@ -15021,7 +15022,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5780, + StartPos: 5779, EndPos: 5782, }, Value: "foo", @@ -15033,7 +15034,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5784, + StartPos: 5783, EndPos: 5784, }, Value: "0", @@ -15044,21 +15045,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5790, + StartPos: 5789, EndPos: 5801, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5790, + StartPos: 5789, EndPos: 5800, }, Class: &node.Identifier{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5790, + StartPos: 5789, EndPos: 5795, }, Value: "static", @@ -15067,7 +15068,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5798, + StartPos: 5797, EndPos: 5800, }, Value: "foo", @@ -15078,28 +15079,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5806, + StartPos: 5805, EndPos: 5814, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5806, + StartPos: 5805, EndPos: 5813, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5810, + StartPos: 5809, EndPos: 5813, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5810, + StartPos: 5809, EndPos: 5813, }, Value: "foo", @@ -15111,35 +15112,35 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5818, + StartPos: 5817, EndPos: 5832, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5818, + StartPos: 5817, EndPos: 5831, }, Class: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5822, + StartPos: 5821, EndPos: 5831, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5822, + StartPos: 5821, EndPos: 5825, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5822, + StartPos: 5821, EndPos: 5825, }, Value: "foo", @@ -15149,14 +15150,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5828, + StartPos: 5827, EndPos: 5831, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5828, + StartPos: 5827, EndPos: 5831, }, Value: "bar", @@ -15169,42 +15170,42 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5836, + StartPos: 5835, EndPos: 5848, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5836, + StartPos: 5835, EndPos: 5846, }, Class: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5846, + StartPos: 5845, EndPos: 5846, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5844, + StartPos: 5843, EndPos: 5846, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5840, + StartPos: 5839, EndPos: 5844, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5840, + StartPos: 5839, EndPos: 5841, }, Value: "a", @@ -15214,7 +15215,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5844, + StartPos: 5843, EndPos: 5844, }, Value: "b", @@ -15224,7 +15225,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5846, + StartPos: 5845, EndPos: 5846, }, Value: "0", @@ -15236,63 +15237,63 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5852, + StartPos: 5851, EndPos: 5883, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5852, + StartPos: 5851, EndPos: 5881, }, Class: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5881, + StartPos: 5880, EndPos: 5881, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5879, + StartPos: 5878, EndPos: 5881, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5875, + StartPos: 5874, EndPos: 5879, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5862, + StartPos: 5861, EndPos: 5876, }, Variable: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5860, + StartPos: 5859, EndPos: 5871, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5856, + StartPos: 5855, EndPos: 5860, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5856, + StartPos: 5855, EndPos: 5857, }, Value: "a", @@ -15302,7 +15303,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5860, + StartPos: 5859, EndPos: 5860, }, Value: "b", @@ -15312,21 +15313,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5862, + StartPos: 5861, EndPos: 5871, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5862, + StartPos: 5861, EndPos: 5863, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5862, + StartPos: 5861, EndPos: 5863, }, Value: "b", @@ -15336,14 +15337,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5868, + StartPos: 5867, EndPos: 5871, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5868, + StartPos: 5867, EndPos: 5871, }, Parts: []node.Node{ @@ -15351,7 +15352,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5868, + StartPos: 5867, EndPos: 5871, }, Value: "null", @@ -15365,14 +15366,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5875, + StartPos: 5874, EndPos: 5876, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5875, + StartPos: 5874, EndPos: 5876, }, Value: "c", @@ -15383,7 +15384,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5879, + StartPos: 5878, EndPos: 5879, }, Value: "d", @@ -15393,7 +15394,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5881, + StartPos: 5880, EndPos: 5881, }, Value: "0", @@ -15405,7 +15406,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5884, + StartPos: 5883, EndPos: 5902, }, Vars: []node.Node{ @@ -15413,21 +15414,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5891, + StartPos: 5890, EndPos: 5901, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5891, + StartPos: 5890, EndPos: 5892, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5891, + StartPos: 5890, EndPos: 5892, }, Value: "a", @@ -15437,14 +15438,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5896, + StartPos: 5895, EndPos: 5901, }, Variable: &expr.ShortArray{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5896, + StartPos: 5895, EndPos: 5898, }, Items: []node.Node{ @@ -15452,14 +15453,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5897, + StartPos: 5896, EndPos: 5897, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5897, + StartPos: 5896, EndPos: 5897, }, Value: "1", @@ -15471,7 +15472,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5900, + StartPos: 5899, EndPos: 5900, }, Value: "0", @@ -15484,7 +15485,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5907, + StartPos: 5906, EndPos: 5921, }, Vars: []node.Node{ @@ -15492,21 +15493,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5914, + StartPos: 5913, EndPos: 5920, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5914, + StartPos: 5913, EndPos: 5915, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5914, + StartPos: 5913, EndPos: 5915, }, Value: "a", @@ -15516,14 +15517,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5919, + StartPos: 5918, EndPos: 5920, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5920, + StartPos: 5919, EndPos: 5920, }, Value: "1", @@ -15536,7 +15537,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5925, + StartPos: 5924, EndPos: 5939, }, Vars: []node.Node{ @@ -15544,21 +15545,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5932, + StartPos: 5931, EndPos: 5938, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5932, + StartPos: 5931, EndPos: 5933, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5932, + StartPos: 5931, EndPos: 5933, }, Value: "a", @@ -15568,14 +15569,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5937, + StartPos: 5936, EndPos: 5938, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5938, + StartPos: 5937, EndPos: 5938, }, Value: "1", @@ -15588,7 +15589,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5943, + StartPos: 5942, EndPos: 5957, }, Vars: []node.Node{ @@ -15596,21 +15597,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5950, + StartPos: 5949, EndPos: 5956, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5950, + StartPos: 5949, EndPos: 5951, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5950, + StartPos: 5949, EndPos: 5951, }, Value: "a", @@ -15620,14 +15621,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5955, + StartPos: 5954, EndPos: 5956, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5956, + StartPos: 5955, EndPos: 5956, }, Value: "1", @@ -15640,7 +15641,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5961, + StartPos: 5960, EndPos: 5975, }, Vars: []node.Node{ @@ -15648,21 +15649,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5968, + StartPos: 5967, EndPos: 5974, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5968, + StartPos: 5967, EndPos: 5969, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5968, + StartPos: 5967, EndPos: 5969, }, Value: "a", @@ -15672,14 +15673,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5973, + StartPos: 5972, EndPos: 5974, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5974, + StartPos: 5973, EndPos: 5974, }, Value: "1", @@ -15692,7 +15693,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5979, + StartPos: 5978, EndPos: 5994, }, Vars: []node.Node{ @@ -15700,21 +15701,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5986, + StartPos: 5985, EndPos: 5992, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5986, + StartPos: 5985, EndPos: 5987, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5986, + StartPos: 5985, EndPos: 5987, }, Value: "a", @@ -15724,7 +15725,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5992, + StartPos: 5991, EndPos: 5992, }, Value: "1", @@ -15736,7 +15737,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 5998, + StartPos: 5997, EndPos: 6016, }, Vars: []node.Node{ @@ -15744,21 +15745,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6005, + StartPos: 6004, EndPos: 6015, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6005, + StartPos: 6004, EndPos: 6006, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6005, + StartPos: 6004, EndPos: 6006, }, Value: "a", @@ -15768,14 +15769,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6010, + StartPos: 6009, EndPos: 6015, }, Condition: &scalar.Lnumber{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6010, + StartPos: 6009, EndPos: 6010, }, Value: "1", @@ -15784,7 +15785,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6015, + StartPos: 6014, EndPos: 6015, }, Value: "2", @@ -15797,7 +15798,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6020, + StartPos: 6019, EndPos: 6041, }, Vars: []node.Node{ @@ -15805,21 +15806,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6027, + StartPos: 6026, EndPos: 6040, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6027, + StartPos: 6026, EndPos: 6028, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6027, + StartPos: 6026, EndPos: 6028, }, Value: "a", @@ -15829,14 +15830,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6032, + StartPos: 6031, EndPos: 6040, }, Condition: &scalar.Lnumber{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6032, + StartPos: 6031, EndPos: 6032, }, Value: "1", @@ -15845,7 +15846,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6036, + StartPos: 6035, EndPos: 6036, }, Value: "2", @@ -15854,7 +15855,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6040, + StartPos: 6039, EndPos: 6040, }, Value: "3", @@ -15867,7 +15868,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6045, + StartPos: 6044, EndPos: 6062, }, Vars: []node.Node{ @@ -15875,21 +15876,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6052, + StartPos: 6051, EndPos: 6061, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6052, + StartPos: 6051, EndPos: 6053, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6052, + StartPos: 6051, EndPos: 6053, }, Value: "a", @@ -15899,14 +15900,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6057, + StartPos: 6056, EndPos: 6061, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6057, + StartPos: 6056, EndPos: 6057, }, Value: "1", @@ -15915,7 +15916,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6061, + StartPos: 6060, EndPos: 6061, }, Value: "2", @@ -15928,7 +15929,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6066, + StartPos: 6065, EndPos: 6083, }, Vars: []node.Node{ @@ -15936,21 +15937,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6073, + StartPos: 6072, EndPos: 6082, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6073, + StartPos: 6072, EndPos: 6074, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6073, + StartPos: 6072, EndPos: 6074, }, Value: "a", @@ -15960,14 +15961,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6078, + StartPos: 6077, EndPos: 6082, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6078, + StartPos: 6077, EndPos: 6078, }, Value: "1", @@ -15976,7 +15977,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6082, + StartPos: 6081, EndPos: 6082, }, Value: "2", @@ -15989,7 +15990,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6087, + StartPos: 6086, EndPos: 6104, }, Vars: []node.Node{ @@ -15997,21 +15998,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6094, + StartPos: 6093, EndPos: 6103, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6094, + StartPos: 6093, EndPos: 6095, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6094, + StartPos: 6093, EndPos: 6095, }, Value: "a", @@ -16021,14 +16022,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6099, + StartPos: 6098, EndPos: 6103, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6099, + StartPos: 6098, EndPos: 6099, }, Value: "1", @@ -16037,7 +16038,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6103, + StartPos: 6102, EndPos: 6103, }, Value: "2", @@ -16050,7 +16051,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6108, + StartPos: 6107, EndPos: 6126, }, Vars: []node.Node{ @@ -16058,21 +16059,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6115, + StartPos: 6114, EndPos: 6125, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6115, + StartPos: 6114, EndPos: 6116, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6115, + StartPos: 6114, EndPos: 6116, }, Value: "a", @@ -16082,14 +16083,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6120, + StartPos: 6119, EndPos: 6125, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6120, + StartPos: 6119, EndPos: 6120, }, Value: "1", @@ -16098,7 +16099,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6125, + StartPos: 6124, EndPos: 6125, }, Value: "2", @@ -16111,7 +16112,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6130, + StartPos: 6129, EndPos: 6148, }, Vars: []node.Node{ @@ -16119,21 +16120,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6137, + StartPos: 6136, EndPos: 6147, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6137, + StartPos: 6136, EndPos: 6138, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6137, + StartPos: 6136, EndPos: 6138, }, Value: "a", @@ -16143,14 +16144,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6142, + StartPos: 6141, EndPos: 6147, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6142, + StartPos: 6141, EndPos: 6142, }, Value: "1", @@ -16159,7 +16160,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6147, + StartPos: 6146, EndPos: 6147, }, Value: "2", @@ -16172,7 +16173,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6152, + StartPos: 6151, EndPos: 6169, }, Vars: []node.Node{ @@ -16180,21 +16181,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6159, + StartPos: 6158, EndPos: 6168, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6159, + StartPos: 6158, EndPos: 6160, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6159, + StartPos: 6158, EndPos: 6160, }, Value: "a", @@ -16204,14 +16205,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6164, + StartPos: 6163, EndPos: 6168, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6164, + StartPos: 6163, EndPos: 6164, }, Value: "1", @@ -16220,7 +16221,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6168, + StartPos: 6167, EndPos: 6168, }, Value: "2", @@ -16233,7 +16234,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6173, + StartPos: 6172, EndPos: 6190, }, Vars: []node.Node{ @@ -16241,21 +16242,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6180, + StartPos: 6179, EndPos: 6189, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6180, + StartPos: 6179, EndPos: 6181, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6180, + StartPos: 6179, EndPos: 6181, }, Value: "a", @@ -16265,14 +16266,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6185, + StartPos: 6184, EndPos: 6189, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6185, + StartPos: 6184, EndPos: 6185, }, Value: "1", @@ -16281,7 +16282,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6189, + StartPos: 6188, EndPos: 6189, }, Value: "2", @@ -16294,7 +16295,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6194, + StartPos: 6193, EndPos: 6212, }, Vars: []node.Node{ @@ -16302,21 +16303,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6201, + StartPos: 6200, EndPos: 6211, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6201, + StartPos: 6200, EndPos: 6202, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6201, + StartPos: 6200, EndPos: 6202, }, Value: "a", @@ -16326,14 +16327,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6206, + StartPos: 6205, EndPos: 6211, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6206, + StartPos: 6205, EndPos: 6206, }, Value: "1", @@ -16342,7 +16343,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6211, + StartPos: 6210, EndPos: 6211, }, Value: "2", @@ -16355,7 +16356,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6216, + StartPos: 6215, EndPos: 6234, }, Vars: []node.Node{ @@ -16363,21 +16364,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6223, + StartPos: 6222, EndPos: 6233, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6223, + StartPos: 6222, EndPos: 6224, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6223, + StartPos: 6222, EndPos: 6224, }, Value: "a", @@ -16387,14 +16388,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6228, + StartPos: 6227, EndPos: 6233, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6228, + StartPos: 6227, EndPos: 6228, }, Value: "1", @@ -16403,7 +16404,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6233, + StartPos: 6232, EndPos: 6233, }, Value: "2", @@ -16416,7 +16417,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6238, + StartPos: 6237, EndPos: 6255, }, Vars: []node.Node{ @@ -16424,21 +16425,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6245, + StartPos: 6244, EndPos: 6254, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6245, + StartPos: 6244, EndPos: 6246, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6245, + StartPos: 6244, EndPos: 6246, }, Value: "a", @@ -16448,14 +16449,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6250, + StartPos: 6249, EndPos: 6254, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6250, + StartPos: 6249, EndPos: 6250, }, Value: "1", @@ -16464,7 +16465,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6254, + StartPos: 6253, EndPos: 6254, }, Value: "2", @@ -16477,7 +16478,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6259, + StartPos: 6258, EndPos: 6278, }, Vars: []node.Node{ @@ -16485,21 +16486,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6266, + StartPos: 6265, EndPos: 6277, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6266, + StartPos: 6265, EndPos: 6267, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6266, + StartPos: 6265, EndPos: 6267, }, Value: "a", @@ -16509,14 +16510,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6271, + StartPos: 6270, EndPos: 6277, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6271, + StartPos: 6270, EndPos: 6271, }, Value: "1", @@ -16525,7 +16526,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6277, + StartPos: 6276, EndPos: 6277, }, Value: "2", @@ -16538,7 +16539,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6282, + StartPos: 6281, EndPos: 6301, }, Vars: []node.Node{ @@ -16546,21 +16547,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6289, + StartPos: 6288, EndPos: 6300, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6289, + StartPos: 6288, EndPos: 6290, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6289, + StartPos: 6288, EndPos: 6290, }, Value: "a", @@ -16570,14 +16571,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6294, + StartPos: 6293, EndPos: 6300, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6294, + StartPos: 6293, EndPos: 6294, }, Value: "1", @@ -16586,7 +16587,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6300, + StartPos: 6299, EndPos: 6300, }, Value: "2", @@ -16599,7 +16600,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6305, + StartPos: 6304, EndPos: 6323, }, Vars: []node.Node{ @@ -16607,21 +16608,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6312, + StartPos: 6311, EndPos: 6322, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6312, + StartPos: 6311, EndPos: 6313, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6312, + StartPos: 6311, EndPos: 6313, }, Value: "a", @@ -16631,14 +16632,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6317, + StartPos: 6316, EndPos: 6322, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6317, + StartPos: 6316, EndPos: 6317, }, Value: "1", @@ -16647,7 +16648,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6322, + StartPos: 6321, EndPos: 6322, }, Value: "2", @@ -16660,7 +16661,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6327, + StartPos: 6326, EndPos: 6346, }, Vars: []node.Node{ @@ -16668,21 +16669,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6334, + StartPos: 6333, EndPos: 6345, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6334, + StartPos: 6333, EndPos: 6335, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6334, + StartPos: 6333, EndPos: 6335, }, Value: "a", @@ -16692,14 +16693,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6339, + StartPos: 6338, EndPos: 6345, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6339, + StartPos: 6338, EndPos: 6339, }, Value: "1", @@ -16708,7 +16709,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6345, + StartPos: 6344, EndPos: 6345, }, Value: "2", @@ -16721,7 +16722,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6350, + StartPos: 6349, EndPos: 6367, }, Vars: []node.Node{ @@ -16729,21 +16730,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6357, + StartPos: 6356, EndPos: 6366, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6357, + StartPos: 6356, EndPos: 6358, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6357, + StartPos: 6356, EndPos: 6358, }, Value: "a", @@ -16753,14 +16754,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6362, + StartPos: 6361, EndPos: 6366, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6362, + StartPos: 6361, EndPos: 6362, }, Value: "1", @@ -16769,7 +16770,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6366, + StartPos: 6365, EndPos: 6366, }, Value: "2", @@ -16782,7 +16783,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6371, + StartPos: 6370, EndPos: 6388, }, Vars: []node.Node{ @@ -16790,21 +16791,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6378, + StartPos: 6377, EndPos: 6387, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6378, + StartPos: 6377, EndPos: 6379, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6378, + StartPos: 6377, EndPos: 6379, }, Value: "a", @@ -16814,14 +16815,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6383, + StartPos: 6382, EndPos: 6387, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6383, + StartPos: 6382, EndPos: 6383, }, Value: "1", @@ -16830,7 +16831,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6387, + StartPos: 6386, EndPos: 6387, }, Value: "2", @@ -16843,7 +16844,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6392, + StartPos: 6391, EndPos: 6409, }, Vars: []node.Node{ @@ -16851,21 +16852,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6399, + StartPos: 6398, EndPos: 6408, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6399, + StartPos: 6398, EndPos: 6400, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6399, + StartPos: 6398, EndPos: 6400, }, Value: "a", @@ -16875,14 +16876,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6404, + StartPos: 6403, EndPos: 6408, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6404, + StartPos: 6403, EndPos: 6404, }, Value: "1", @@ -16891,7 +16892,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6408, + StartPos: 6407, EndPos: 6408, }, Value: "2", @@ -16904,7 +16905,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6413, + StartPos: 6412, EndPos: 6431, }, Vars: []node.Node{ @@ -16912,21 +16913,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6420, + StartPos: 6419, EndPos: 6430, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6420, + StartPos: 6419, EndPos: 6421, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6420, + StartPos: 6419, EndPos: 6421, }, Value: "a", @@ -16936,14 +16937,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6425, + StartPos: 6424, EndPos: 6430, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6425, + StartPos: 6424, EndPos: 6425, }, Value: "1", @@ -16952,7 +16953,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6430, + StartPos: 6429, EndPos: 6430, }, Value: "2", @@ -16965,7 +16966,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6435, + StartPos: 6434, EndPos: 6454, }, Vars: []node.Node{ @@ -16973,21 +16974,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6442, + StartPos: 6441, EndPos: 6453, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6442, + StartPos: 6441, EndPos: 6443, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6442, + StartPos: 6441, EndPos: 6443, }, Value: "a", @@ -16997,14 +16998,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6447, + StartPos: 6446, EndPos: 6453, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6447, + StartPos: 6446, EndPos: 6447, }, Value: "1", @@ -17013,7 +17014,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6453, + StartPos: 6452, EndPos: 6453, }, Value: "2", @@ -17026,7 +17027,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6458, + StartPos: 6457, EndPos: 6475, }, Vars: []node.Node{ @@ -17034,21 +17035,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6465, + StartPos: 6464, EndPos: 6474, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6465, + StartPos: 6464, EndPos: 6466, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6465, + StartPos: 6464, EndPos: 6466, }, Value: "a", @@ -17058,14 +17059,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6470, + StartPos: 6469, EndPos: 6474, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6470, + StartPos: 6469, EndPos: 6470, }, Value: "1", @@ -17074,7 +17075,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6474, + StartPos: 6473, EndPos: 6474, }, Value: "2", @@ -17087,7 +17088,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6479, + StartPos: 6478, EndPos: 6497, }, Vars: []node.Node{ @@ -17095,21 +17096,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6486, + StartPos: 6485, EndPos: 6496, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6486, + StartPos: 6485, EndPos: 6487, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6486, + StartPos: 6485, EndPos: 6487, }, Value: "a", @@ -17119,14 +17120,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6491, + StartPos: 6490, EndPos: 6496, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6491, + StartPos: 6490, EndPos: 6491, }, Value: "1", @@ -17135,7 +17136,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6496, + StartPos: 6495, EndPos: 6496, }, Value: "2", @@ -17148,7 +17149,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6501, + StartPos: 6500, EndPos: 6519, }, Vars: []node.Node{ @@ -17156,21 +17157,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6508, + StartPos: 6507, EndPos: 6518, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6508, + StartPos: 6507, EndPos: 6509, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6508, + StartPos: 6507, EndPos: 6509, }, Value: "a", @@ -17180,14 +17181,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6513, + StartPos: 6512, EndPos: 6518, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6513, + StartPos: 6512, EndPos: 6513, }, Value: "1", @@ -17196,7 +17197,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6518, + StartPos: 6517, EndPos: 6518, }, Value: "2", @@ -17209,7 +17210,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6523, + StartPos: 6522, EndPos: 6541, }, Vars: []node.Node{ @@ -17217,21 +17218,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6530, + StartPos: 6529, EndPos: 6540, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6530, + StartPos: 6529, EndPos: 6531, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6530, + StartPos: 6529, EndPos: 6531, }, Value: "a", @@ -17241,14 +17242,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6535, + StartPos: 6534, EndPos: 6540, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6535, + StartPos: 6534, EndPos: 6535, }, Value: "1", @@ -17257,7 +17258,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6540, + StartPos: 6539, EndPos: 6540, }, Value: "2", @@ -17270,7 +17271,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6545, + StartPos: 6544, EndPos: 6563, }, Vars: []node.Node{ @@ -17278,21 +17279,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6552, + StartPos: 6551, EndPos: 6562, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6552, + StartPos: 6551, EndPos: 6553, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6552, + StartPos: 6551, EndPos: 6553, }, Value: "a", @@ -17302,14 +17303,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6557, + StartPos: 6556, EndPos: 6562, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6557, + StartPos: 6556, EndPos: 6557, }, Value: "1", @@ -17318,7 +17319,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6562, + StartPos: 6561, EndPos: 6562, }, Value: "2", @@ -17331,7 +17332,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6567, + StartPos: 6566, EndPos: 6584, }, Vars: []node.Node{ @@ -17339,21 +17340,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6574, + StartPos: 6573, EndPos: 6583, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6574, + StartPos: 6573, EndPos: 6575, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6574, + StartPos: 6573, EndPos: 6575, }, Value: "a", @@ -17363,14 +17364,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6579, + StartPos: 6578, EndPos: 6583, }, Left: &scalar.Lnumber{ Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6579, + StartPos: 6578, EndPos: 6579, }, Value: "1", @@ -17379,7 +17380,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6583, + StartPos: 6582, EndPos: 6583, }, Value: "2", @@ -17392,7 +17393,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6588, + StartPos: 6587, EndPos: 6608, }, Vars: []node.Node{ @@ -17400,21 +17401,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6595, + StartPos: 6594, EndPos: 6607, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6595, + StartPos: 6594, EndPos: 6596, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6595, + StartPos: 6594, EndPos: 6596, }, Value: "a", @@ -17424,14 +17425,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6600, + StartPos: 6599, EndPos: 6607, }, Class: &name.Name{ Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6600, + StartPos: 6599, EndPos: 6602, }, Parts: []node.Node{ @@ -17439,7 +17440,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6600, + StartPos: 6599, EndPos: 6602, }, Value: "Foo", @@ -17450,7 +17451,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6605, + StartPos: 6604, EndPos: 6607, }, Value: "bar", @@ -17463,7 +17464,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6612, + StartPos: 6611, EndPos: 6634, }, Vars: []node.Node{ @@ -17471,21 +17472,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6619, + StartPos: 6618, EndPos: 6633, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6619, + StartPos: 6618, EndPos: 6620, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6619, + StartPos: 6618, EndPos: 6620, }, Value: "a", @@ -17495,14 +17496,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6624, + StartPos: 6623, EndPos: 6633, }, Class: &name.Name{ Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6624, + StartPos: 6623, EndPos: 6626, }, Parts: []node.Node{ @@ -17510,7 +17511,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6624, + StartPos: 6623, EndPos: 6626, }, Value: "Foo", @@ -17521,7 +17522,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6629, + StartPos: 6628, EndPos: 6633, }, Value: "class", @@ -17534,7 +17535,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6638, + StartPos: 6637, EndPos: 6659, }, Vars: []node.Node{ @@ -17542,21 +17543,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6645, + StartPos: 6644, EndPos: 6658, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6645, + StartPos: 6644, EndPos: 6646, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6645, + StartPos: 6644, EndPos: 6646, }, Value: "a", @@ -17566,7 +17567,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6650, + StartPos: 6649, EndPos: 6658, }, Value: "__CLASS__", @@ -17578,7 +17579,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6663, + StartPos: 6662, EndPos: 6678, }, Vars: []node.Node{ @@ -17586,21 +17587,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6670, + StartPos: 6669, EndPos: 6677, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6670, + StartPos: 6669, EndPos: 6671, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6670, + StartPos: 6669, EndPos: 6671, }, Value: "a", @@ -17610,14 +17611,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6675, + StartPos: 6674, EndPos: 6677, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6675, + StartPos: 6674, EndPos: 6677, }, Parts: []node.Node{ @@ -17625,7 +17626,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6675, + StartPos: 6674, EndPos: 6677, }, Value: "Foo", @@ -17640,7 +17641,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6682, + StartPos: 6681, EndPos: 6707, }, Vars: []node.Node{ @@ -17648,21 +17649,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6689, + StartPos: 6688, EndPos: 6706, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6689, + StartPos: 6688, EndPos: 6690, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6689, + StartPos: 6688, EndPos: 6690, }, Value: "a", @@ -17672,14 +17673,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6694, + StartPos: 6693, EndPos: 6706, }, Constant: &name.Relative{ Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6694, + StartPos: 6693, EndPos: 6706, }, Parts: []node.Node{ @@ -17687,7 +17688,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6704, + StartPos: 6703, EndPos: 6706, }, Value: "Foo", @@ -17702,7 +17703,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6711, + StartPos: 6710, EndPos: 6727, }, Vars: []node.Node{ @@ -17710,21 +17711,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6718, + StartPos: 6717, EndPos: 6726, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6718, + StartPos: 6717, EndPos: 6719, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6718, + StartPos: 6717, EndPos: 6719, }, Value: "a", @@ -17734,14 +17735,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6723, + StartPos: 6722, EndPos: 6726, }, Constant: &name.FullyQualified{ Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6723, + StartPos: 6722, EndPos: 6726, }, Parts: []node.Node{ @@ -17749,7 +17750,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6724, + StartPos: 6723, EndPos: 6726, }, Value: "Foo", @@ -17764,7 +17765,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6731, + StartPos: 6730, EndPos: 6750, }, Vars: []node.Node{ @@ -17772,21 +17773,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6738, + StartPos: 6737, EndPos: 6749, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6738, + StartPos: 6737, EndPos: 6739, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6738, + StartPos: 6737, EndPos: 6739, }, Value: "a", @@ -17796,7 +17797,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6743, + StartPos: 6742, EndPos: 6749, }, }, @@ -17807,7 +17808,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6754, + StartPos: 6753, EndPos: 6782, }, Vars: []node.Node{ @@ -17815,21 +17816,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6761, + StartPos: 6760, EndPos: 6781, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6761, + StartPos: 6760, EndPos: 6762, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6761, + StartPos: 6760, EndPos: 6762, }, Value: "a", @@ -17839,7 +17840,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6766, + StartPos: 6765, EndPos: 6781, }, Items: []node.Node{ @@ -17847,14 +17848,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6772, + StartPos: 6771, EndPos: 6777, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6772, + StartPos: 6771, EndPos: 6772, }, Value: "1", @@ -17863,7 +17864,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6777, + StartPos: 6776, EndPos: 6777, }, Value: "1", @@ -17873,14 +17874,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6780, + StartPos: 6779, EndPos: 6780, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6780, + StartPos: 6779, EndPos: 6780, }, Value: "2", @@ -17895,7 +17896,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6786, + StartPos: 6785, EndPos: 6812, }, Vars: []node.Node{ @@ -17903,21 +17904,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6793, + StartPos: 6792, EndPos: 6811, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6793, + StartPos: 6792, EndPos: 6794, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6793, + StartPos: 6792, EndPos: 6794, }, Value: "a", @@ -17927,14 +17928,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6798, + StartPos: 6797, EndPos: 6811, }, Variable: &expr.ShortArray{ Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6798, + StartPos: 6797, EndPos: 6808, }, Items: []node.Node{ @@ -17942,14 +17943,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6799, + StartPos: 6798, EndPos: 6799, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6799, + StartPos: 6798, EndPos: 6799, }, Value: "1", @@ -17959,14 +17960,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6802, + StartPos: 6801, EndPos: 6807, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6802, + StartPos: 6801, EndPos: 6802, }, Value: "2", @@ -17975,7 +17976,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6807, + StartPos: 6806, EndPos: 6807, }, Value: "2", @@ -17987,7 +17988,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6810, + StartPos: 6809, EndPos: 6810, }, Value: "0", @@ -18000,21 +18001,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6817, + StartPos: 6816, EndPos: 6831, }, Cond: &expr.Yield{ Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6821, + StartPos: 6820, EndPos: 6827, }, Value: &scalar.Lnumber{ Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6827, + StartPos: 6826, EndPos: 6827, }, Value: "1", @@ -18024,7 +18025,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6830, + StartPos: 6829, EndPos: 6831, }, Stmts: []node.Node{}, @@ -18034,21 +18035,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6835, + StartPos: 6834, EndPos: 6845, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6835, + StartPos: 6834, EndPos: 6844, }, Class: &name.Name{ Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6835, + StartPos: 6834, EndPos: 6837, }, Parts: []node.Node{ @@ -18056,7 +18057,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6835, + StartPos: 6834, EndPos: 6837, }, Value: "Foo", @@ -18067,21 +18068,21 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6840, + StartPos: 6839, EndPos: 6844, }, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6841, + StartPos: 6840, EndPos: 6844, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6841, + StartPos: 6840, EndPos: 6844, }, Value: "bar", @@ -18094,28 +18095,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6850, + StartPos: 6849, EndPos: 6856, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6850, + StartPos: 6849, EndPos: 6855, }, Function: &expr.Variable{ Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6850, + StartPos: 6849, EndPos: 6853, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6850, + StartPos: 6849, EndPos: 6853, }, Value: "foo", @@ -18125,7 +18126,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6854, + StartPos: 6853, EndPos: 6855, }, }, @@ -18135,42 +18136,42 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6860, + StartPos: 6859, EndPos: 6872, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6860, + StartPos: 6859, EndPos: 6871, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6860, + StartPos: 6859, EndPos: 6868, }, Variable: &expr.FunctionCall{ Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6860, + StartPos: 6859, EndPos: 6865, }, Function: &expr.Variable{ Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6860, + StartPos: 6859, EndPos: 6863, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6860, + StartPos: 6859, EndPos: 6863, }, Value: "foo", @@ -18180,7 +18181,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6864, + StartPos: 6863, EndPos: 6865, }, }, @@ -18189,7 +18190,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6867, + StartPos: 6866, EndPos: 6867, }, Value: "0", @@ -18199,7 +18200,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6870, + StartPos: 6869, EndPos: 6870, }, Value: "0", @@ -18210,28 +18211,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6876, + StartPos: 6875, EndPos: 6882, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6876, + StartPos: 6875, EndPos: 6881, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6876, + StartPos: 6875, EndPos: 6877, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6876, + StartPos: 6875, EndPos: 6877, }, Value: "a", @@ -18241,14 +18242,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6879, + StartPos: 6878, EndPos: 6880, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6879, + StartPos: 6878, EndPos: 6880, }, Value: "b", @@ -18260,28 +18261,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 375, EndLine: 375, - StartPos: 6886, + StartPos: 6885, EndPos: 6891, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 375, EndLine: 375, - StartPos: 6886, + StartPos: 6885, EndPos: 6890, }, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 375, EndLine: 375, - StartPos: 6888, + StartPos: 6887, EndPos: 6889, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 375, EndLine: 375, - StartPos: 6888, + StartPos: 6887, EndPos: 6889, }, Value: "a", @@ -18293,28 +18294,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6895, + StartPos: 6894, EndPos: 6909, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6895, + StartPos: 6894, EndPos: 6908, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6895, + StartPos: 6894, EndPos: 6898, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6895, + StartPos: 6894, EndPos: 6898, }, Value: "foo", @@ -18324,14 +18325,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6901, + StartPos: 6900, EndPos: 6906, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6902, + StartPos: 6901, EndPos: 6905, }, Value: "bar", @@ -18341,7 +18342,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6907, + StartPos: 6906, EndPos: 6908, }, }, @@ -18351,28 +18352,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6913, + StartPos: 6912, EndPos: 6922, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6913, + StartPos: 6912, EndPos: 6921, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6913, + StartPos: 6912, EndPos: 6916, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6913, + StartPos: 6912, EndPos: 6916, }, Value: "foo", @@ -18382,7 +18383,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6919, + StartPos: 6918, EndPos: 6921, }, Value: "bar", @@ -18393,14 +18394,14 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 379, EndLine: 379, - StartPos: 6927, + StartPos: 6926, EndPos: 6944, }, }, }, } - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18423,7 +18424,7 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 10, - StartPos: 6, + StartPos: 5, EndPos: 70, }, Stmts: []node.Node{ @@ -18431,14 +18432,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 12, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 11, }, Value: "\"test\"", @@ -18448,14 +18449,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 16, + StartPos: 15, EndPos: 24, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 16, + StartPos: 15, EndPos: 23, }, Value: "\"\\$test\"", @@ -18465,14 +18466,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 6, - StartPos: 28, + StartPos: 27, EndPos: 41, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 4, EndLine: 6, - StartPos: 28, + StartPos: 27, EndPos: 40, }, Value: "\"\n\t\t\ttest\n\t\t\"", @@ -18482,14 +18483,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 45, + StartPos: 44, EndPos: 52, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 45, + StartPos: 44, EndPos: 51, }, Value: "'$test'", @@ -18499,14 +18500,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 8, EndLine: 10, - StartPos: 56, + StartPos: 55, EndPos: 70, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 8, EndLine: 10, - StartPos: 56, + StartPos: 55, EndPos: 69, }, Value: "'\n\t\t\t$test\n\t\t'", @@ -18515,7 +18516,7 @@ func TestPhp5Strings(t *testing.T) { }, } - php5parser := php5.NewParser(bytes.NewBufferString(src), "test.php") + php5parser := php5.NewParser([]byte(src), "5.6") php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18543,7 +18544,7 @@ CAD; Position: &position.Position{ StartLine: 2, EndLine: 15, - StartPos: 9, + StartPos: 5, EndPos: 120, }, Stmts: []node.Node{ @@ -18551,43 +18552,43 @@ CAD; Position: &position.Position{ StartLine: 2, EndLine: 3, - StartPos: 9, + StartPos: 5, EndPos: 16, }, Expr: &scalar.Heredoc{ Position: &position.Position{ StartLine: 2, EndLine: 3, - StartPos: 9, + StartPos: 5, EndPos: 15, }, - Label: "CAD", + Label: "<< 0 { prevNode := lastNode(yyDollar[1].list) @@ -2598,17 +2605,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 79: + case 80: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:358 + // 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:367 + // line php7/php7.y:368 { namePart := name.NewNamePart(yyDollar[1].token.Value) yyVAL.list = []node.Node{namePart} @@ -2621,9 +2628,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 81: + case 82: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:380 + // line php7/php7.y:381 { namePart := name.NewNamePart(yyDollar[3].token.Value) yyVAL.list = append(yyDollar[1].list, namePart) @@ -2637,9 +2644,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 82: + case 83: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:397 + // line php7/php7.y:398 { yyVAL.node = name.NewName(yyDollar[1].list) @@ -2651,9 +2658,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 83: + case 84: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:409 + // line php7/php7.y:410 { yyVAL.node = name.NewRelative(yyDollar[3].list) @@ -2666,9 +2673,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 84: + case 85: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:422 + // line php7/php7.y:423 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) @@ -2680,26 +2687,18 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 85: + case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:437 + // 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:444 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:450 + // line php7/php7.y:445 { yyVAL.node = yyDollar[1].node @@ -2707,7 +2706,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:456 + // line php7/php7.y:451 { yyVAL.node = yyDollar[1].node @@ -2715,7 +2714,7 @@ yydefault: } case 89: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:462 + // line php7/php7.y:457 { yyVAL.node = yyDollar[1].node @@ -2723,15 +2722,23 @@ yydefault: } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:468 + // 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:474 + // line php7/php7.y:475 { yyVAL.node = stmt.NewHaltCompiler() @@ -2746,12 +2753,10 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - yylex.(*Parser).Begin(scanner.HALT_COMPILER) } - case 92: + case 93: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:492 + // line php7/php7.y:491 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, nil) @@ -2768,9 +2773,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 93: + case 94: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:509 + // line php7/php7.y:508 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) @@ -2787,9 +2792,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 94: + case 95: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:526 + // line php7/php7.y:525 { yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) @@ -2803,9 +2808,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 95: + case 96: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:540 + // line php7/php7.y:539 { yyVAL.node = yyDollar[2].node @@ -2819,9 +2824,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 96: + case 97: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:554 + // line php7/php7.y:553 { yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) @@ -2835,9 +2840,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 97: + case 98: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:568 + // line php7/php7.y:567 { yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) @@ -2851,9 +2856,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 98: + case 99: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:582 + // line php7/php7.y:581 { yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) @@ -2867,9 +2872,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 99: + case 100: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:596 + // line php7/php7.y:595 { yyVAL.node = stmt.NewConstList(yyDollar[2].list) @@ -2881,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:613 - { - 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:625 + // line php7/php7.y:612 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -2912,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:640 + // line php7/php7.y:639 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2934,9 +2939,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 103: + case 104: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:661 + // line php7/php7.y:660 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -2958,9 +2963,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 104: + case 105: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:686 + // line php7/php7.y:685 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) @@ -2981,9 +2986,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 105: + case 106: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:707 + // line php7/php7.y:706 { name := name.NewName(yyDollar[2].list) yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) @@ -3005,59 +3010,40 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 106: + case 107: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:732 + // line php7/php7.y:731 { yyVAL.token = nil } - case 107: + case 108: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:736 + // line php7/php7.y:735 { yyVAL.token = yyDollar[1].token } - case 108: + case 109: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:743 + // 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:752 - { - yyVAL.list = []node.Node{yyDollar[1].node} - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 110: - yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:761 + 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:770 - { - yyVAL.list = []node.Node{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 112: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:779 + // line php7/php7.y:760 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3066,33 +3052,52 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 113: + case 112: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:788 + // 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:797 + // 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:803 + // 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:812 + // line php7/php7.y:811 { name := name.NewName(yyDollar[1].list) yyVAL.node = stmt.NewUse(nil, name, nil) @@ -3106,9 +3111,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 117: + case 118: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:826 + // line php7/php7.y:825 { name := name.NewName(yyDollar[1].list) alias := node.NewIdentifier(yyDollar[3].token.Value) @@ -3126,9 +3131,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 118: + case 119: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:847 + // line php7/php7.y:846 { yyVAL.node = yyDollar[1].node @@ -3137,9 +3142,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 119: + case 120: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:856 + // line php7/php7.y:855 { yyVAL.node = yyDollar[2].node @@ -3152,9 +3157,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 120: + case 121: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:872 + // line php7/php7.y:871 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3163,17 +3168,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 121: + case 122: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:881 + // 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:890 + // line php7/php7.y:889 { if inlineHtmlNode, ok := yyDollar[2].node.(*stmt.InlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3186,34 +3191,26 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 123: + case 124: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:903 + // 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:912 + // 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:919 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:925 + // line php7/php7.y:918 { yyVAL.node = yyDollar[1].node @@ -3221,7 +3218,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:931 + // line php7/php7.y:924 { yyVAL.node = yyDollar[1].node @@ -3229,7 +3226,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:937 + // line php7/php7.y:930 { yyVAL.node = yyDollar[1].node @@ -3237,15 +3234,23 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:943 + // 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:949 + // line php7/php7.y:948 { yyVAL.node = stmt.NewHaltCompiler() @@ -3261,9 +3266,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 131: + case 132: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:967 + // line php7/php7.y:966 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -3274,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:980 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 133: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:986 + // 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:992 + // line php7/php7.y:991 { switch n := yyDollar[5].node.(type) { case *stmt.While: @@ -3315,9 +3320,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 135: + case 136: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1013 + // line php7/php7.y:1012 { yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) @@ -3334,9 +3339,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 136: + case 137: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1030 + // line php7/php7.y:1029 { switch n := yyDollar[9].node.(type) { case *stmt.For: @@ -3363,9 +3368,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 137: + case 138: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1057 + // line php7/php7.y:1056 { switch n := yyDollar[5].node.(type) { case *stmt.Switch: @@ -3388,9 +3393,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 138: + case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1080 + // line php7/php7.y:1079 { yyVAL.node = stmt.NewBreak(yyDollar[2].node) @@ -3404,9 +3409,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 139: + case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1094 + // line php7/php7.y:1093 { yyVAL.node = stmt.NewContinue(yyDollar[2].node) @@ -3420,9 +3425,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 140: + case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1108 + // line php7/php7.y:1107 { yyVAL.node = stmt.NewReturn(yyDollar[2].node) @@ -3436,9 +3441,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 141: + case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1122 + // line php7/php7.y:1121 { yyVAL.node = stmt.NewGlobal(yyDollar[2].list) @@ -3452,9 +3457,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 142: + case 143: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1136 + // line php7/php7.y:1135 { yyVAL.node = stmt.NewStatic(yyDollar[2].list) @@ -3468,9 +3473,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 143: + case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1150 + // line php7/php7.y:1149 { yyVAL.node = stmt.NewEcho(yyDollar[2].list) @@ -3485,9 +3490,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 144: + case 145: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1165 + // line php7/php7.y:1164 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) @@ -3499,9 +3504,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 145: + case 146: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1177 + // line php7/php7.y:1176 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) @@ -3515,9 +3520,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 146: + case 147: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1191 + // line php7/php7.y:1190 { yyVAL.node = stmt.NewUnset(yyDollar[3].list) @@ -3537,9 +3542,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 147: + case 148: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1211 + // line php7/php7.y:1210 { switch n := yyDollar[7].node.(type) { case *stmt.Foreach: @@ -3563,9 +3568,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 148: + case 149: yyDollar = yyS[yypt-9 : yypt+1] - //line php7/php7.y:1236 + // line php7/php7.y:1235 { switch n := yyDollar[9].node.(type) { case *stmt.Foreach: @@ -3592,9 +3597,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 149: + case 150: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1263 + // line php7/php7.y:1262 { yyVAL.node = yyDollar[5].node yyVAL.node.(*stmt.Declare).Consts = yyDollar[3].list @@ -3609,9 +3614,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 150: + case 151: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1278 + // line php7/php7.y:1277 { yyVAL.node = stmt.NewNop() @@ -3624,9 +3629,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 151: + case 152: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1291 + // line php7/php7.y:1290 { if yyDollar[6].node == nil { yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) @@ -3643,9 +3648,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 152: + case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1308 + // line php7/php7.y:1307 { yyVAL.node = stmt.NewThrow(yyDollar[2].node) @@ -3659,9 +3664,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 153: + case 154: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1322 + // line php7/php7.y:1321 { label := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewGoto(label) @@ -3678,9 +3683,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 154: + case 155: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:1339 + // line php7/php7.y:1338 { label := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewLabel(label) @@ -3695,17 +3700,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 155: + case 156: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1356 + // 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:1362 + // line php7/php7.y:1361 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[5].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -3728,17 +3733,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 157: + case 158: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1387 + // 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:1393 + // line php7/php7.y:1392 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3747,17 +3752,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 159: + case 160: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1405 + // 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:1411 + // line php7/php7.y:1410 { yyVAL.node = stmt.NewFinally(yyDollar[3].list) @@ -3771,17 +3776,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 161: + case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1428 + // 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:1434 + // line php7/php7.y:1433 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3790,17 +3795,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 163: + case 164: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1446 + // 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:1455 + // 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) @@ -3834,33 +3839,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 165: + case 166: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1491 + // line php7/php7.y:1490 { yyVAL.token = nil } - case 166: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1495 - { - yyVAL.token = yyDollar[1].token - } case 167: - yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1502 - { - yyVAL.token = nil - } - case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1506 + // 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:1513 + // 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) @@ -3878,9 +3883,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 170: + case 171: yyDollar = yyS[yypt-8 : yypt+1] - //line php7/php7.y:1531 + // 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) @@ -3897,39 +3902,25 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 171: + case 172: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1551 + // 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:1557 + // 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:1566 - { - 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:1578 + // line php7/php7.y:1565 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -3942,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:1593 + // line php7/php7.y:1592 { name := node.NewIdentifier(yyDollar[2].token.Value) yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) @@ -3960,9 +3965,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 176: + case 177: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:1613 + // 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) @@ -3979,17 +3984,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 177: + case 178: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1633 + // 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:1639 + // line php7/php7.y:1638 { yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) @@ -4001,17 +4006,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 179: + case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1654 + // 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:1660 + // line php7/php7.y:1659 { yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) @@ -4023,17 +4028,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 181: + case 182: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1675 + // 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:1681 + // line php7/php7.y:1680 { yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) @@ -4045,17 +4050,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 183: + case 184: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1696 + // 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:1702 + // line php7/php7.y:1701 { yyVAL.node = expr.NewReference(yyDollar[2].node) @@ -4067,9 +4072,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 185: + case 186: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1714 + // line php7/php7.y:1713 { yyVAL.node = expr.NewList(yyDollar[3].list) @@ -4083,9 +4088,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 186: + case 187: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1728 + // line php7/php7.y:1727 { yyVAL.node = expr.NewShortList(yyDollar[2].list) @@ -4098,9 +4103,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 187: + case 188: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1744 + // line php7/php7.y:1743 { yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) @@ -4109,9 +4114,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 188: + case 189: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1753 + // line php7/php7.y:1752 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) @@ -4128,9 +4133,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 189: + case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1773 + // line php7/php7.y:1772 { yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) @@ -4139,9 +4144,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 190: + case 191: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1782 + // line php7/php7.y:1781 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) @@ -4158,9 +4163,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 191: + case 192: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1802 + // line php7/php7.y:1801 { yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) @@ -4169,9 +4174,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 192: + case 193: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1811 + // line php7/php7.y:1810 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewDeclare(nil, stmtList, true) @@ -4188,9 +4193,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 193: + case 194: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:1831 + // line php7/php7.y:1830 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4205,9 +4210,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 194: + case 195: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1846 + // line php7/php7.y:1845 { caseList := stmt.NewCaseList(yyDollar[3].list) yyVAL.node = stmt.NewSwitch(nil, caseList) @@ -4223,9 +4228,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 195: + case 196: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1862 + // line php7/php7.y:1861 { caseList := stmt.NewCaseList(yyDollar[2].list) yyVAL.node = stmt.NewAltSwitch(nil, caseList) @@ -4242,9 +4247,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 196: + case 197: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1879 + // line php7/php7.y:1878 { caseList := stmt.NewCaseList(yyDollar[3].list) @@ -4263,17 +4268,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 197: + case 198: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:1901 + // 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:1907 + // line php7/php7.y:1906 { _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) yyVAL.list = append(yyDollar[1].list, _case) @@ -4288,9 +4293,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 199: + case 200: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1922 + // line php7/php7.y:1921 { _default := stmt.NewDefault(yyDollar[4].list) yyVAL.list = append(yyDollar[1].list, _default) @@ -4305,21 +4310,21 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 200: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1940 - { - yyVAL.token = yyDollar[1].token - } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1944 + // line php7/php7.y:1939 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:1951 + // 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) @@ -4328,9 +4333,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 203: + case 204: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:1960 + // line php7/php7.y:1959 { stmtList := stmt.NewStmtList(yyDollar[2].list) yyVAL.node = stmt.NewAltWhile(nil, stmtList) @@ -4347,9 +4352,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 204: + case 205: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:1980 + // line php7/php7.y:1979 { yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) @@ -4363,9 +4368,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 205: + case 206: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:1994 + // line php7/php7.y:1993 { _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) @@ -4381,17 +4386,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 206: + case 207: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2013 + // 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:2019 + // line php7/php7.y:2018 { _else := stmt.NewElse(yyDollar[3].node) yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) @@ -4405,9 +4410,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 208: + case 209: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2036 + // line php7/php7.y:2035 { stmts := stmt.NewStmtList(yyDollar[6].list) yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) @@ -4424,9 +4429,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 209: + case 210: yyDollar = yyS[yypt-7 : yypt+1] - //line php7/php7.y:2053 + // line php7/php7.y:2052 { stmts := stmt.NewStmtList(yyDollar[7].list) _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) @@ -4444,9 +4449,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 210: + case 211: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2074 + // line php7/php7.y:2073 { yyVAL.node = yyDollar[1].node @@ -4460,9 +4465,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 211: + case 212: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2088 + // line php7/php7.y:2087 { stmts := stmt.NewStmtList(yyDollar[4].list) _else := stmt.NewAltElse(stmts) @@ -4482,33 +4487,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 212: + case 213: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2111 + // 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:2117 + // 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:2126 + // 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:2132 + // line php7/php7.y:2131 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4517,9 +4522,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 216: + case 217: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2144 + // line php7/php7.y:2143 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4567,9 +4572,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 217: + case 218: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:2189 + // line php7/php7.y:2188 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4618,33 +4623,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 218: + case 219: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2238 + // 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:2244 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2253 + // 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:2259 + // line php7/php7.y:2258 { yyVAL.node = node.NewNullable(yyDollar[2].node) @@ -4654,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:2274 - { - 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:2286 + // line php7/php7.y:2273 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -4686,23 +4677,37 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2298 + // 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:2307 + // 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:2313 + // line php7/php7.y:2312 { yyVAL.node = yyDollar[2].node @@ -4711,9 +4716,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 227: + case 228: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2325 + // line php7/php7.y:2324 { yyVAL.node = node.NewArgumentList(nil) @@ -4726,9 +4731,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 228: + case 229: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2338 + // line php7/php7.y:2337 { yyVAL.node = node.NewArgumentList(yyDollar[2].list) @@ -4745,17 +4750,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 229: + case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2358 + // 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:2364 + // line php7/php7.y:2363 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4764,9 +4769,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 231: + case 232: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2376 + // line php7/php7.y:2375 { yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) @@ -4778,9 +4783,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 232: + case 233: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2388 + // line php7/php7.y:2387 { yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) @@ -4792,36 +4797,36 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 233: + case 234: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2403 + // 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:2412 - { - yyVAL.list = []node.Node{yyDollar[1].node} - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2421 + // 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:2430 + // line php7/php7.y:2429 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4830,17 +4835,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 237: + case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2439 + // 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:2448 + // line php7/php7.y:2447 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4857,9 +4862,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 239: + case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2465 + // line php7/php7.y:2464 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -4877,41 +4882,41 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 240: + case 241: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2486 + // 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:2492 + // 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:2501 + 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:2515 + // line php7/php7.y:2514 { yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) @@ -4930,9 +4935,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 244: + case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2534 + // line php7/php7.y:2533 { yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) @@ -4944,9 +4949,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 245: + case 246: yyDollar = yyS[yypt-10 : yypt+1] - //line php7/php7.y:2546 + // 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) @@ -4981,17 +4986,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 246: + case 247: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2583 + // 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:2589 + // line php7/php7.y:2588 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5000,9 +5005,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 248: + case 249: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2601 + // line php7/php7.y:2600 { yyVAL.node = stmt.NewNop() @@ -5014,9 +5019,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 249: + case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2614 + // line php7/php7.y:2613 { yyVAL.node = stmt.NewTraitAdaptationList(nil) @@ -5028,9 +5033,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 250: + case 251: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2626 + // line php7/php7.y:2625 { yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) @@ -5042,25 +5047,25 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 251: + case 252: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2641 + // 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:2647 + // 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:2656 + // line php7/php7.y:2655 { yyVAL.node = yyDollar[1].node @@ -5070,9 +5075,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 254: + case 255: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:2666 + // line php7/php7.y:2665 { yyVAL.node = yyDollar[1].node @@ -5082,9 +5087,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 255: + case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2679 + // line php7/php7.y:2678 { yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) @@ -5095,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:2695 - { - 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:2711 + // line php7/php7.y:2694 { alias := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) @@ -5134,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:2727 + // line php7/php7.y:2726 { alias := node.NewIdentifier(yyDollar[4].token.Value) yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) @@ -5151,9 +5156,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 259: + case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2743 + // line php7/php7.y:2742 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) @@ -5166,9 +5171,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 260: + case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2759 + // line php7/php7.y:2758 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewTraitMethodRef(nil, name) @@ -5182,17 +5187,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 261: + case 262: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2773 + // 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:2782 + // line php7/php7.y:2781 { target := node.NewIdentifier(yyDollar[3].token.Value) yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) @@ -5208,9 +5213,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 263: + case 264: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2801 + // line php7/php7.y:2800 { yyVAL.node = stmt.NewNop() @@ -5223,9 +5228,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 264: + case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:2814 + // line php7/php7.y:2813 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) @@ -5238,17 +5243,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 265: + case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2830 + // 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:2836 + // line php7/php7.y:2835 { modifier := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.list = []node.Node{modifier} @@ -5261,55 +5266,41 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 267: + case 268: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:2852 + // 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:2858 + // 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:2867 + // 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:2873 + // 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:2882 - { - 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:2894 + // line php7/php7.y:2881 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5323,7 +5314,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2906 + // line php7/php7.y:2893 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5337,7 +5328,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2918 + // line php7/php7.y:2905 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5351,7 +5342,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2930 + // line php7/php7.y:2917 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5365,7 +5356,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2942 + // line php7/php7.y:2929 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -5378,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:2957 + // line php7/php7.y:2956 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5388,17 +5393,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 278: + case 279: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:2966 + // 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:2975 + // line php7/php7.y:2974 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5415,9 +5420,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 280: + case 281: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:2992 + // line php7/php7.y:2991 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -5435,9 +5440,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 281: + case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3013 + // line php7/php7.y:3012 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5446,34 +5451,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 282: + case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3022 + // 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:3031 - { - 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:3049 + // line php7/php7.y:3030 { name := node.NewIdentifier(yyDollar[1].token.Value) yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) @@ -5489,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:3067 + // 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:3076 - { - yyVAL.list = []node.Node{yyDollar[1].node} - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3085 + // 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:3094 + // 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:3100 + // 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:3109 + // line php7/php7.y:3108 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5542,17 +5547,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 291: + case 292: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3118 + // 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:3127 + // 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) @@ -5570,9 +5575,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 293: + case 294: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3148 + // line php7/php7.y:3147 { if yyDollar[3].node != nil { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) @@ -5587,9 +5592,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 294: + case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3163 + // line php7/php7.y:3162 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) @@ -5601,9 +5606,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 295: + case 296: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:3178 + // line php7/php7.y:3177 { listNode := expr.NewList(yyDollar[3].list) yyVAL.node = assign.NewAssign(listNode, yyDollar[6].node) @@ -5620,9 +5625,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 296: + case 297: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:3195 + // line php7/php7.y:3194 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) @@ -5638,9 +5643,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 297: + case 298: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3211 + // line php7/php7.y:3210 { yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) @@ -5653,9 +5658,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 298: + case 299: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3224 + // line php7/php7.y:3223 { yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) @@ -5669,9 +5674,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 299: + case 300: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3238 + // line php7/php7.y:3237 { yyVAL.node = expr.NewClone(yyDollar[2].node) @@ -5683,9 +5688,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 300: + case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3250 + // line php7/php7.y:3249 { yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -5698,9 +5703,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 301: + case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3263 + // line php7/php7.y:3262 { yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -5713,9 +5718,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 302: + case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3276 + // line php7/php7.y:3275 { yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -5728,9 +5733,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 303: + case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3289 + // line php7/php7.y:3288 { yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -5743,9 +5748,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 304: + case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3302 + // line php7/php7.y:3301 { yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -5758,9 +5763,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 305: + case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3315 + // line php7/php7.y:3314 { yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -5773,9 +5778,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 306: + case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3328 + // line php7/php7.y:3327 { yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -5788,9 +5793,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 307: + case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3341 + // line php7/php7.y:3340 { yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -5803,9 +5808,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 308: + case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3354 + // line php7/php7.y:3353 { yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -5818,9 +5823,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 309: + case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3367 + // line php7/php7.y:3366 { yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -5833,9 +5838,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 310: + case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3380 + // line php7/php7.y:3379 { yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -5848,9 +5853,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 311: + case 312: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3393 + // line php7/php7.y:3392 { yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -5863,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:3406 + // line php7/php7.y:3418 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) @@ -5878,9 +5898,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 313: + case 315: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3419 + // line php7/php7.y:3431 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) @@ -5892,9 +5912,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 314: + case 316: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3431 + // line php7/php7.y:3443 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) @@ -5907,9 +5927,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 315: + case 317: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3444 + // line php7/php7.y:3456 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) @@ -5921,9 +5941,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 316: + case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3456 + // line php7/php7.y:3468 { yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) @@ -5936,9 +5956,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 317: + case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3469 + // line php7/php7.y:3481 { yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) @@ -5951,9 +5971,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 318: + case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3482 + // line php7/php7.y:3494 { yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) @@ -5966,9 +5986,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 319: + case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3495 + // line php7/php7.y:3507 { yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) @@ -5981,9 +6001,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 320: + case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3508 + // line php7/php7.y:3520 { yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) @@ -5996,9 +6016,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 321: + case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3521 + // line php7/php7.y:3533 { yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) @@ -6011,9 +6031,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 322: + case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3534 + // line php7/php7.y:3546 { yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) @@ -6026,9 +6046,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 323: + case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3547 + // line php7/php7.y:3559 { yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) @@ -6041,9 +6061,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 324: + case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3560 + // line php7/php7.y:3572 { yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) @@ -6056,9 +6076,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 325: + case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3573 + // line php7/php7.y:3585 { yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) @@ -6071,9 +6091,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 326: + case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3586 + // line php7/php7.y:3598 { yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) @@ -6086,9 +6106,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 327: + case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3599 + // line php7/php7.y:3611 { yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) @@ -6101,9 +6121,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 328: + case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3612 + // line php7/php7.y:3624 { yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) @@ -6116,9 +6136,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 329: + case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3625 + // line php7/php7.y:3637 { yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) @@ -6131,9 +6151,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 330: + case 332: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3638 + // line php7/php7.y:3650 { yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) @@ -6146,9 +6166,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 331: + case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3651 + // line php7/php7.y:3663 { yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) @@ -6161,9 +6181,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 332: + case 334: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3664 + // line php7/php7.y:3676 { yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) @@ -6176,9 +6196,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 333: + case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3677 + // line php7/php7.y:3689 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) @@ -6190,9 +6210,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 334: + case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3689 + // line php7/php7.y:3701 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) @@ -6204,9 +6224,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 335: + case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3701 + // line php7/php7.y:3713 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) @@ -6218,9 +6238,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 336: + case 338: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3713 + // line php7/php7.y:3725 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) @@ -6232,9 +6252,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 337: + case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3725 + // line php7/php7.y:3737 { yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6247,9 +6267,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 338: + case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3738 + // line php7/php7.y:3750 { yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) @@ -6262,9 +6282,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 339: + case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3751 + // line php7/php7.y:3763 { yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) @@ -6277,9 +6297,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 340: + case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3764 + // line php7/php7.y:3776 { yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) @@ -6293,9 +6313,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 341: + case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3778 + // line php7/php7.y:3790 { yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) @@ -6308,9 +6328,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 342: + case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3791 + // line php7/php7.y:3803 { yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6323,9 +6343,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 343: + case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3804 + // line php7/php7.y:3816 { yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) @@ -6338,9 +6358,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 344: + case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3817 + // line php7/php7.y:3829 { yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) @@ -6353,9 +6373,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 345: + case 347: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3830 + // line php7/php7.y:3842 { yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) @@ -6368,9 +6388,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 346: + case 348: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3843 + // line php7/php7.y:3855 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) @@ -6383,9 +6403,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 347: + case 349: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3856 + // line php7/php7.y:3868 { yyVAL.node = yyDollar[2].node @@ -6395,17 +6415,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 348: + case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3866 + // 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:3872 + // line php7/php7.y:3884 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) @@ -6419,9 +6439,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 350: + case 352: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:3886 + // line php7/php7.y:3898 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) @@ -6435,9 +6455,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 351: + case 353: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:3900 + // line php7/php7.y:3912 { yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) @@ -6450,17 +6470,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 352: + case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:3913 + // 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:3919 + // line php7/php7.y:3931 { yyVAL.node = cast.NewInt(yyDollar[2].node) @@ -6473,9 +6493,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 354: + case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3932 + // line php7/php7.y:3944 { yyVAL.node = cast.NewDouble(yyDollar[2].node) @@ -6488,9 +6508,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 355: + case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3945 + // line php7/php7.y:3957 { yyVAL.node = cast.NewString(yyDollar[2].node) @@ -6503,9 +6523,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 356: + case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3958 + // line php7/php7.y:3970 { yyVAL.node = cast.NewArray(yyDollar[2].node) @@ -6518,9 +6538,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 357: + case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3971 + // line php7/php7.y:3983 { yyVAL.node = cast.NewObject(yyDollar[2].node) @@ -6533,9 +6553,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 358: + case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3984 + // line php7/php7.y:3996 { yyVAL.node = cast.NewBool(yyDollar[2].node) @@ -6548,9 +6568,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 359: + case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:3997 + // line php7/php7.y:4009 { yyVAL.node = cast.NewUnset(yyDollar[2].node) @@ -6563,9 +6583,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 360: + case 362: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4010 + // line php7/php7.y:4022 { var e *expr.Exit if yyDollar[2].node != nil { @@ -6592,9 +6612,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 361: + case 363: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4037 + // line php7/php7.y:4049 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) @@ -6606,17 +6626,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 362: + case 364: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4049 + // 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:4055 + // line php7/php7.y:4067 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) @@ -6628,9 +6648,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 364: + case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4067 + // line php7/php7.y:4079 { yyVAL.node = expr.NewPrint(yyDollar[2].node) @@ -6642,9 +6662,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 365: + case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4079 + // line php7/php7.y:4091 { yyVAL.node = expr.NewYield(nil, nil) @@ -6656,9 +6676,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 366: + case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4091 + // line php7/php7.y:4103 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) @@ -6670,9 +6690,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 367: + case 369: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4103 + // line php7/php7.y:4115 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) @@ -6685,9 +6705,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 368: + case 370: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4116 + // line php7/php7.y:4128 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) @@ -6699,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:4128 + // 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) @@ -6736,76 +6787,70 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 370: - yyDollar = yyS[yypt-12 : yypt+1] - //line php7/php7.y:4160 + 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:4196 + // line php7/php7.y:4232 { - yyVAL.str = yylex.(*Parser).PhpDocComment - yylex.(*Parser).PhpDocComment = "" + 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:4206 + // line php7/php7.y:4242 { yyVAL.token = nil } - case 373: + case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4210 + // line php7/php7.y:4246 { yyVAL.token = yyDollar[1].token } - case 374: + case 378: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4217 + // 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:4223 + // line php7/php7.y:4259 { yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) @@ -6819,9 +6864,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 376: + case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4240 + // line php7/php7.y:4276 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6830,17 +6875,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 377: + case 381: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4249 + // 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:4258 + // line php7/php7.y:4294 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -6855,9 +6900,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 379: + case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4273 + // line php7/php7.y:4309 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -6873,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:4294 - { - 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:4306 - { - 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:4319 - { - 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:4332 - { - 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:4347 + // line php7/php7.y:4383 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -6947,41 +6992,41 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 385: + case 389: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4359 + // 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:4368 + // 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:4374 + // 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:4383 + // 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:4389 + // line php7/php7.y:4425 { yyVAL.node = expr.NewExit(yyDollar[2].node) @@ -6994,17 +7039,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 390: + case 394: yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4405 + // 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:4411 + // line php7/php7.y:4447 { part := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{part} @@ -7014,33 +7059,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 392: + case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4421 + // 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:4430 + // 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:4436 + // 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:4445 + // line php7/php7.y:4481 { yyVAL.node = expr.NewArray(yyDollar[3].list) @@ -7054,9 +7099,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 396: + case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4459 + // line php7/php7.y:4495 { yyVAL.node = expr.NewShortArray(yyDollar[2].list) @@ -7069,9 +7114,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 397: + case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4472 + // line php7/php7.y:4508 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -7083,9 +7128,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 398: + case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4487 + // line php7/php7.y:4523 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) @@ -7097,9 +7142,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 399: + case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4499 + // line php7/php7.y:4535 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) @@ -7109,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:4511 - { - 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:4523 - { - 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:4535 - { - 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:4547 - { - 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:4559 + // line php7/php7.y:4547 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7183,7 +7172,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4571 + // line php7/php7.y:4559 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7197,7 +7186,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4583 + // line php7/php7.y:4571 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7211,7 +7200,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4595 + // line php7/php7.y:4583 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) @@ -7224,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:4607 + // line php7/php7.y:4643 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) @@ -7239,9 +7284,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 409: + case 413: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4621 + // line php7/php7.y:4657 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) @@ -7253,9 +7298,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 410: + case 414: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4633 + // line php7/php7.y:4669 { yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) @@ -7267,9 +7312,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 411: + case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:4645 + // line php7/php7.y:4681 { yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) @@ -7281,25 +7326,25 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 412: + case 416: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4657 + // 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:4663 + // 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:4672 + // line php7/php7.y:4708 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) @@ -7309,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:4684 - { - 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:4700 - { - 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:4719 - { - yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 418: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4725 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 419: - yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:4734 + 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] - //line php7/php7.y:4740 + 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:4749 + // line php7/php7.y:4755 { yyVAL.node = yyDollar[1].node @@ -7389,27 +7402,23 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4758 + // 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:4764 + 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:4774 + // line php7/php7.y:4776 { yyVAL.node = yyDollar[1].node @@ -7417,15 +7426,23 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4783 + // 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:4789 + // line php7/php7.y:4800 { yyVAL.node = yyDollar[2].node @@ -7433,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:4799 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4808 + // 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:4814 + 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:4828 + 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:4842 + // line php7/php7.y:4850 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) @@ -7499,9 +7512,41 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 432: + case 434: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4856 + // 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)) @@ -7514,33 +7559,33 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 433: + case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4869 + // 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:4878 + // 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:4884 + // 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:4890 + // line php7/php7.y:4926 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) @@ -7553,9 +7598,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 437: + case 441: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:4906 + // line php7/php7.y:4942 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -7570,9 +7615,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 438: + case 442: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4921 + // line php7/php7.y:4957 { yyVAL.node = expr.NewVariable(yyDollar[3].node) @@ -7587,9 +7632,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 439: + case 443: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:4936 + // line php7/php7.y:4972 { yyVAL.node = expr.NewVariable(yyDollar[2].node) @@ -7600,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:4952 - { - 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:4965 - { - 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:4981 - { - yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 443: - yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:4987 - { - 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:5001 + 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:5015 + // 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) @@ -7685,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:5028 - { - 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:5041 - { - 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:5057 - { - 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:5069 - { - 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:5079 + 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:5088 + // line php7/php7.y:5093 { yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) @@ -7765,9 +7776,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 452: + case 453: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5100 + // line php7/php7.y:5105 { yyVAL.node = yyDollar[2].node @@ -7775,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:5110 - { - yyVAL.node = yyDollar[1].node - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5119 - { - yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 455: - yyDollar = yyS[yypt-0 : yypt+1] - //line php7/php7.y:5128 - { - yyVAL.node = expr.NewArrayItem(nil, nil) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 456: - yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5134 + // line php7/php7.y:5115 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 457: + case 455: + yyDollar = yyS[yypt-1 : yypt+1] + // line php7/php7.y:5124 + { + 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:5143 + // 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:5146 + { + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + 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: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) @@ -7824,9 +7869,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 458: + case 462: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5156 + // line php7/php7.y:5192 { if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { yyVAL.list = []node.Node{} @@ -7836,11 +7881,11 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 459: + case 463: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5169 + // 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)) @@ -7851,11 +7896,11 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 460: + case 464: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5182 + // 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)) @@ -7865,12 +7910,12 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 461: + case 465: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5194 + // 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)) @@ -7883,12 +7928,12 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 462: + case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5210 + // 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)) @@ -7899,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:5224 + // 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)) @@ -7920,13 +7979,13 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 464: + case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5243 + // 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)) @@ -7939,17 +7998,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 465: + case 470: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5263 + // 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:5269 + // line php7/php7.y:5317 { encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7962,17 +8021,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 467: + case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5282 + // 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:5288 + // line php7/php7.y:5336 { encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) yyVAL.list = []node.Node{encapsed, yyDollar[2].node} @@ -7985,9 +8044,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 469: + case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5304 + // line php7/php7.y:5352 { name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(name) @@ -8002,9 +8061,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 470: + case 475: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5319 + // line php7/php7.y:5367 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -8022,9 +8081,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 471: + case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5337 + // line php7/php7.y:5385 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) variable := expr.NewVariable(identifier) @@ -8044,9 +8103,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 472: + case 477: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5357 + // line php7/php7.y:5405 { variable := expr.NewVariable(yyDollar[2].node) @@ -8061,9 +8120,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 473: + case 478: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5372 + // line php7/php7.y:5420 { name := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(name) @@ -8080,9 +8139,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 474: + case 479: yyDollar = yyS[yypt-6 : yypt+1] - //line php7/php7.y:5389 + // line php7/php7.y:5437 { identifier := node.NewIdentifier(yyDollar[2].token.Value) variable := expr.NewVariable(identifier) @@ -8101,9 +8160,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 475: + case 480: yyDollar = yyS[yypt-3 : yypt+1] - //line php7/php7.y:5408 + // line php7/php7.y:5456 { yyVAL.node = yyDollar[2].node @@ -8113,9 +8172,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 476: + case 481: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5421 + // line php7/php7.y:5469 { yyVAL.node = scalar.NewString(yyDollar[1].token.Value) @@ -8127,9 +8186,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 477: + case 482: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5433 + // line php7/php7.y:5481 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { @@ -8146,9 +8205,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 478: + case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5450 + // line php7/php7.y:5498 { var lnumber *scalar.Lnumber // TODO: add option to handle 64 bit integer @@ -8174,9 +8233,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 479: + case 484: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5476 + // line php7/php7.y:5524 { identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) yyVAL.node = expr.NewVariable(identifier) @@ -8191,9 +8250,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 480: + case 485: yyDollar = yyS[yypt-5 : yypt+1] - //line php7/php7.y:5494 + // line php7/php7.y:5542 { yyVAL.node = expr.NewIsset(yyDollar[3].list) @@ -8211,9 +8270,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 481: + case 486: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5512 + // line php7/php7.y:5560 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) @@ -8227,9 +8286,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 482: + case 487: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5526 + // line php7/php7.y:5574 { yyVAL.node = expr.NewInclude(yyDollar[2].node) @@ -8241,9 +8300,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 483: + case 488: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5538 + // line php7/php7.y:5586 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) @@ -8255,9 +8314,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 484: + case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line php7/php7.y:5550 + // line php7/php7.y:5598 { yyVAL.node = expr.NewEval(yyDollar[3].node) @@ -8271,9 +8330,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 485: + case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5564 + // line php7/php7.y:5612 { yyVAL.node = expr.NewRequire(yyDollar[2].node) @@ -8285,9 +8344,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 486: + case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line php7/php7.y:5576 + // line php7/php7.y:5624 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) @@ -8299,17 +8358,17 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 487: + case 492: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5591 + // 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:5597 + // line php7/php7.y:5645 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8318,9 +8377,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 489: + case 494: yyDollar = yyS[yypt-1 : yypt+1] - //line php7/php7.y:5609 + // line php7/php7.y:5657 { yyVAL.node = yyDollar[1].node diff --git a/php7/php7.y b/php7/php7.y index 3ff11c0..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 @@ -303,11 +306,9 @@ start: // save position yylex.(*Parser).rootNode.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, freefloating.End, yylex.(*Parser).currentToken.FreeFloating) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - if yylex.(*Parser).currentToken.Value == "\xff" { - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, freefloating.End, yylex.(*Parser).currentToken.FreeFloating) - } } ; @@ -318,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: @@ -485,8 +486,6 @@ top_statement: yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - yylex.(*Parser).Begin(scanner.HALT_COMPILER) } | T_NAMESPACE namespace_name ';' { @@ -2497,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) } @@ -3400,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 @@ -4124,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) @@ -4156,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) } @@ -4194,8 +4230,8 @@ expr_without_variable: backup_doc_comment: /* empty */ { - $$ = yylex.(*Parser).PhpDocComment - yylex.(*Parser).PhpDocComment = "" + $$ = yylex.(*Parser).Lexer.GetPhpDocComment() + yylex.(*Parser).Lexer.SetPhpDocComment("") yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5126,7 +5162,7 @@ array_pair_list: possible_array_pair: /* empty */ { - $$ = expr.NewArrayItem(nil, nil) + $$ = expr.NewArrayItem(nil, nil, false) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5142,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) @@ -5167,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)) @@ -5180,7 +5216,7 @@ array_pair: } | expr { - $$ = expr.NewArrayItem(nil, $1) + $$ = expr.NewArrayItem(nil, $1, false) // save position $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) @@ -5193,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)) @@ -5209,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)) @@ -5218,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)) @@ -5243,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 8cee251..c7acc29 100644 --- a/php7/php7_bench_test.go +++ b/php7/php7_bench_test.go @@ -1,7 +1,6 @@ package php7_test import ( - "bytes" "testing" "github.com/z7zmey/php-parser/php7" @@ -382,7 +381,7 @@ CAD; ` for n := 0; n < b.N; n++ { - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() } } diff --git a/php7/php7_test.go b/php7/php7_test.go index df49ce0..32b79c7 100644 --- a/php7/php7_test.go +++ b/php7/php7_test.go @@ -1,7 +1,6 @@ package php7_test import ( - "bytes" "testing" "gotest.tools/assert" @@ -340,7 +339,7 @@ func TestPhp7(t *testing.T) { \foo\bar(); function foo(&$a, ...$b) { - __halt_compiler(); + function bar() {} class Baz {} trait Quux{} @@ -376,7 +375,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 348, - StartPos: 6, + StartPos: 5, EndPos: 6319, }, Stmts: []node.Node{ @@ -384,21 +383,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 20, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 19, }, Function: &name.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 8, }, Parts: []node.Node{ @@ -406,7 +405,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 8, }, Value: "foo", @@ -417,7 +416,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 9, + StartPos: 8, EndPos: 19, }, Arguments: []node.Node{ @@ -425,7 +424,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Variadic: false, @@ -434,14 +433,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 10, + StartPos: 9, EndPos: 11, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 10, + StartPos: 9, EndPos: 11, }, Value: "a", @@ -452,7 +451,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 14, + StartPos: 13, EndPos: 18, }, Variadic: true, @@ -461,14 +460,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 17, + StartPos: 16, EndPos: 18, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 17, + StartPos: 16, EndPos: 18, }, Value: "b", @@ -483,28 +482,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 24, + StartPos: 23, EndPos: 39, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 24, + StartPos: 23, EndPos: 38, }, Function: &expr.Variable{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 24, + StartPos: 23, EndPos: 27, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 24, + StartPos: 23, EndPos: 27, }, Value: "foo", @@ -514,7 +513,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, + StartPos: 27, EndPos: 38, }, Arguments: []node.Node{ @@ -522,7 +521,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 29, + StartPos: 28, EndPos: 30, }, Variadic: false, @@ -531,14 +530,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 29, + StartPos: 28, EndPos: 30, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 29, + StartPos: 28, EndPos: 30, }, Value: "a", @@ -549,7 +548,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 33, + StartPos: 32, EndPos: 37, }, Variadic: true, @@ -558,14 +557,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 36, + StartPos: 35, EndPos: 37, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 36, + StartPos: 35, EndPos: 37, }, Value: "b", @@ -580,28 +579,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 43, + StartPos: 42, EndPos: 63, }, Expr: &expr.MethodCall{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 43, + StartPos: 42, EndPos: 62, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 43, + StartPos: 42, EndPos: 46, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 43, + StartPos: 42, EndPos: 46, }, Value: "foo", @@ -611,7 +610,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 49, + StartPos: 48, EndPos: 51, }, Value: "bar", @@ -620,7 +619,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 52, + StartPos: 51, EndPos: 62, }, Arguments: []node.Node{ @@ -628,23 +627,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 53, + StartPos: 52, EndPos: 54, }, - Variadic: false, IsReference: false, + Variadic: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 53, + StartPos: 52, EndPos: 54, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 53, + StartPos: 52, EndPos: 54, }, Value: "a", @@ -655,7 +654,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 57, + StartPos: 56, EndPos: 61, }, Variadic: true, @@ -664,14 +663,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 60, + StartPos: 59, EndPos: 61, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 60, + StartPos: 59, EndPos: 61, }, Value: "b", @@ -686,21 +685,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, + StartPos: 66, EndPos: 86, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, + StartPos: 66, EndPos: 85, }, Class: &name.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, + StartPos: 66, EndPos: 69, }, Parts: []node.Node{ @@ -708,7 +707,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, + StartPos: 66, EndPos: 69, }, Value: "foo", @@ -719,7 +718,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 72, + StartPos: 71, EndPos: 74, }, Value: "bar", @@ -728,7 +727,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 75, + StartPos: 74, EndPos: 85, }, Arguments: []node.Node{ @@ -736,7 +735,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 76, + StartPos: 75, EndPos: 77, }, Variadic: false, @@ -745,14 +744,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 76, + StartPos: 75, EndPos: 77, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 76, + StartPos: 75, EndPos: 77, }, Value: "a", @@ -763,7 +762,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 80, + StartPos: 79, EndPos: 84, }, Variadic: true, @@ -772,14 +771,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 83, + StartPos: 82, EndPos: 84, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 83, + StartPos: 82, EndPos: 84, }, Value: "b", @@ -794,28 +793,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, + StartPos: 89, EndPos: 110, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, + StartPos: 89, EndPos: 109, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, + StartPos: 89, EndPos: 93, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, + StartPos: 89, EndPos: 93, }, Value: "foo", @@ -825,7 +824,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 96, + StartPos: 95, EndPos: 98, }, Value: "bar", @@ -834,7 +833,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 99, + StartPos: 98, EndPos: 109, }, Arguments: []node.Node{ @@ -842,23 +841,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 100, + StartPos: 99, EndPos: 101, }, - IsReference: false, Variadic: false, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 100, + StartPos: 99, EndPos: 101, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 100, + StartPos: 99, EndPos: 101, }, Value: "a", @@ -869,7 +868,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 104, + StartPos: 103, EndPos: 108, }, Variadic: true, @@ -878,14 +877,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 107, + StartPos: 106, EndPos: 108, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 107, + StartPos: 106, EndPos: 108, }, Value: "b", @@ -900,21 +899,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 114, + StartPos: 113, EndPos: 132, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 114, + StartPos: 113, EndPos: 131, }, Class: &name.Name{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 118, + StartPos: 117, EndPos: 120, }, Parts: []node.Node{ @@ -922,7 +921,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 118, + StartPos: 117, EndPos: 120, }, Value: "foo", @@ -933,7 +932,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 121, + StartPos: 120, EndPos: 131, }, Arguments: []node.Node{ @@ -941,7 +940,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 122, + StartPos: 121, EndPos: 123, }, Variadic: false, @@ -950,14 +949,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 122, + StartPos: 121, EndPos: 123, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 122, + StartPos: 121, EndPos: 123, }, Value: "a", @@ -968,7 +967,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 126, + StartPos: 125, EndPos: 130, }, Variadic: true, @@ -977,14 +976,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 129, + StartPos: 128, EndPos: 130, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 129, + StartPos: 128, EndPos: 130, }, Value: "b", @@ -999,21 +998,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 161, + StartPos: 160, EndPos: 185, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 161, + StartPos: 160, EndPos: 184, }, Class: &stmt.Class{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 165, + StartPos: 164, EndPos: 184, }, PhpDocComment: "/** anonymous class */", @@ -1021,7 +1020,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 171, + StartPos: 170, EndPos: 181, }, Arguments: []node.Node{ @@ -1029,23 +1028,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 172, + StartPos: 171, EndPos: 173, }, - IsReference: false, Variadic: false, + IsReference: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 172, + StartPos: 171, EndPos: 173, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 172, + StartPos: 171, EndPos: 173, }, Value: "a", @@ -1056,7 +1055,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 176, + StartPos: 175, EndPos: 180, }, Variadic: true, @@ -1065,14 +1064,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 179, + StartPos: 178, EndPos: 180, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 179, + StartPos: 178, EndPos: 180, }, Value: "b", @@ -1089,21 +1088,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 189, + StartPos: 188, EndPos: 201, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 189, + StartPos: 188, EndPos: 200, }, Class: &stmt.Class{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 193, + StartPos: 192, EndPos: 200, }, PhpDocComment: "", @@ -1115,28 +1114,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 205, + StartPos: 204, EndPos: 213, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 205, + StartPos: 204, EndPos: 212, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 209, + StartPos: 208, EndPos: 212, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 209, + StartPos: 208, EndPos: 212, }, Value: "foo", @@ -1148,35 +1147,35 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 217, + StartPos: 216, EndPos: 228, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 217, + StartPos: 216, EndPos: 227, }, Class: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 221, + StartPos: 220, EndPos: 227, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 221, + StartPos: 220, EndPos: 224, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 221, + StartPos: 220, EndPos: 224, }, Value: "foo", @@ -1186,7 +1185,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 226, + StartPos: 225, EndPos: 226, }, Value: "1", @@ -1198,35 +1197,35 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 232, + StartPos: 231, EndPos: 246, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 232, + StartPos: 231, EndPos: 245, }, Class: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 236, + StartPos: 235, EndPos: 245, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 236, + StartPos: 235, EndPos: 239, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 236, + StartPos: 235, EndPos: 239, }, Value: "foo", @@ -1236,14 +1235,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 241, + StartPos: 240, EndPos: 244, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 241, + StartPos: 240, EndPos: 244, }, Value: "bar", @@ -1256,35 +1255,35 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 250, + StartPos: 249, EndPos: 263, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 250, + StartPos: 249, EndPos: 262, }, Class: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 254, + StartPos: 253, EndPos: 262, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 254, + StartPos: 253, EndPos: 257, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 254, + StartPos: 253, EndPos: 257, }, Value: "foo", @@ -1294,7 +1293,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 260, + StartPos: 259, EndPos: 262, }, Value: "bar", @@ -1306,35 +1305,35 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 267, + StartPos: 266, EndPos: 281, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 267, + StartPos: 266, EndPos: 280, }, Class: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 271, + StartPos: 270, EndPos: 280, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 271, + StartPos: 270, EndPos: 274, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 271, + StartPos: 270, EndPos: 274, }, Value: "foo", @@ -1344,14 +1343,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 277, + StartPos: 276, EndPos: 280, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 277, + StartPos: 276, EndPos: 280, }, Value: "bar", @@ -1364,28 +1363,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 285, + StartPos: 284, EndPos: 301, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 285, + StartPos: 284, EndPos: 300, }, Class: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 289, + StartPos: 288, EndPos: 300, }, Class: &node.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 289, + StartPos: 288, EndPos: 294, }, Value: "static", @@ -1394,14 +1393,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 297, + StartPos: 296, EndPos: 300, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 297, + StartPos: 296, EndPos: 300, }, Value: "bar", @@ -1414,16 +1413,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 306, + StartPos: 305, EndPos: 350, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 315, + StartPos: 314, EndPos: 317, }, Value: "foo", @@ -1433,23 +1432,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 319, + StartPos: 318, EndPos: 332, }, - Variadic: false, ByRef: false, + Variadic: false, VariableType: &node.Nullable{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 319, + StartPos: 318, EndPos: 322, }, Expr: &name.Name{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 320, + StartPos: 319, EndPos: 322, }, Parts: []node.Node{ @@ -1457,7 +1456,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 320, + StartPos: 319, EndPos: 322, }, Value: "bar", @@ -1469,14 +1468,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 324, + StartPos: 323, EndPos: 327, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 324, + StartPos: 323, EndPos: 327, }, Value: "bar", @@ -1486,14 +1485,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 329, + StartPos: 328, EndPos: 332, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 329, + StartPos: 328, EndPos: 332, }, Parts: []node.Node{ @@ -1501,7 +1500,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 329, + StartPos: 328, EndPos: 332, }, Value: "null", @@ -1514,16 +1513,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 335, + StartPos: 334, EndPos: 346, }, - ByRef: true, Variadic: true, + ByRef: true, VariableType: &name.Name{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 335, + StartPos: 334, EndPos: 337, }, Parts: []node.Node{ @@ -1531,7 +1530,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 335, + StartPos: 334, EndPos: 337, }, Value: "baz", @@ -1542,14 +1541,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 343, + StartPos: 342, EndPos: 346, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 343, + StartPos: 342, EndPos: 346, }, Value: "baz", @@ -1563,7 +1562,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 354, + StartPos: 353, EndPos: 417, }, PhpDocComment: "", @@ -1571,7 +1570,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 360, + StartPos: 359, EndPos: 362, }, Value: "foo", @@ -1581,7 +1580,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 365, + StartPos: 364, EndPos: 416, }, ReturnsRef: false, @@ -1590,7 +1589,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 381, + StartPos: 380, EndPos: 383, }, Value: "foo", @@ -1600,7 +1599,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 365, + StartPos: 364, EndPos: 370, }, Value: "public", @@ -1611,7 +1610,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 385, + StartPos: 384, EndPos: 398, }, ByRef: false, @@ -1620,14 +1619,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 385, + StartPos: 384, EndPos: 388, }, Expr: &name.Name{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 386, + StartPos: 385, EndPos: 388, }, Parts: []node.Node{ @@ -1635,7 +1634,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 386, + StartPos: 385, EndPos: 388, }, Value: "bar", @@ -1647,14 +1646,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 390, + StartPos: 389, EndPos: 393, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 390, + StartPos: 389, EndPos: 393, }, Value: "bar", @@ -1664,14 +1663,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 395, + StartPos: 394, EndPos: 398, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 395, + StartPos: 394, EndPos: 398, }, Parts: []node.Node{ @@ -1679,7 +1678,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 395, + StartPos: 394, EndPos: 398, }, Value: "null", @@ -1692,7 +1691,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 401, + StartPos: 400, EndPos: 412, }, ByRef: true, @@ -1701,7 +1700,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 401, + StartPos: 400, EndPos: 403, }, Parts: []node.Node{ @@ -1709,7 +1708,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 401, + StartPos: 400, EndPos: 403, }, Value: "baz", @@ -1720,14 +1719,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 409, + StartPos: 408, EndPos: 412, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 409, + StartPos: 408, EndPos: 412, }, Value: "baz", @@ -1739,7 +1738,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 415, + StartPos: 414, EndPos: 416, }, Stmts: []node.Node{}, @@ -1751,25 +1750,25 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 421, + StartPos: 420, EndPos: 462, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 421, + StartPos: 420, EndPos: 461, }, + PhpDocComment: "", ReturnsRef: false, Static: false, - PhpDocComment: "", Params: []node.Node{ &node.Parameter{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 430, + StartPos: 429, EndPos: 443, }, ByRef: false, @@ -1778,14 +1777,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 430, + StartPos: 429, EndPos: 433, }, Expr: &name.Name{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 431, + StartPos: 430, EndPos: 433, }, Parts: []node.Node{ @@ -1793,7 +1792,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 431, + StartPos: 430, EndPos: 433, }, Value: "bar", @@ -1805,14 +1804,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 435, + StartPos: 434, EndPos: 438, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 435, + StartPos: 434, EndPos: 438, }, Value: "bar", @@ -1822,14 +1821,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 440, + StartPos: 439, EndPos: 443, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 440, + StartPos: 439, EndPos: 443, }, Parts: []node.Node{ @@ -1837,7 +1836,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 440, + StartPos: 439, EndPos: 443, }, Value: "null", @@ -1850,16 +1849,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 446, + StartPos: 445, EndPos: 457, }, - Variadic: true, ByRef: true, + Variadic: true, VariableType: &name.Name{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 446, + StartPos: 445, EndPos: 448, }, Parts: []node.Node{ @@ -1867,7 +1866,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 446, + StartPos: 445, EndPos: 448, }, Value: "baz", @@ -1878,14 +1877,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 454, + StartPos: 453, EndPos: 457, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 454, + StartPos: 453, EndPos: 457, }, Value: "baz", @@ -1900,41 +1899,41 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 466, + StartPos: 465, EndPos: 514, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 466, + StartPos: 465, EndPos: 513, }, + PhpDocComment: "", ReturnsRef: false, Static: true, - PhpDocComment: "", Params: []node.Node{ &node.Parameter{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 482, + StartPos: 481, EndPos: 495, }, - Variadic: false, ByRef: false, + Variadic: false, VariableType: &node.Nullable{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 482, + StartPos: 481, EndPos: 485, }, Expr: &name.Name{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 483, + StartPos: 482, EndPos: 485, }, Parts: []node.Node{ @@ -1942,7 +1941,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 483, + StartPos: 482, EndPos: 485, }, Value: "bar", @@ -1954,14 +1953,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 487, + StartPos: 486, EndPos: 490, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 487, + StartPos: 486, EndPos: 490, }, Value: "bar", @@ -1971,14 +1970,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 492, + StartPos: 491, EndPos: 495, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 492, + StartPos: 491, EndPos: 495, }, Parts: []node.Node{ @@ -1986,7 +1985,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 492, + StartPos: 491, EndPos: 495, }, Value: "null", @@ -1999,16 +1998,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 498, + StartPos: 497, EndPos: 509, }, - Variadic: true, ByRef: true, + Variadic: true, VariableType: &name.Name{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 498, + StartPos: 497, EndPos: 500, }, Parts: []node.Node{ @@ -2016,7 +2015,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 498, + StartPos: 497, EndPos: 500, }, Value: "baz", @@ -2027,14 +2026,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 506, + StartPos: 505, EndPos: 509, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 506, + StartPos: 505, EndPos: 509, }, Value: "baz", @@ -2049,14 +2048,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 23, EndLine: 23, - StartPos: 519, + StartPos: 518, EndPos: 538, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 23, EndLine: 23, - StartPos: 519, + StartPos: 518, EndPos: 537, }, Value: "1234567890123456789", @@ -2066,14 +2065,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 24, EndLine: 24, - StartPos: 542, + StartPos: 541, EndPos: 562, }, Expr: &scalar.Dnumber{ Position: &position.Position{ StartLine: 24, EndLine: 24, - StartPos: 542, + StartPos: 541, EndPos: 561, }, Value: "12345678901234567890", @@ -2083,14 +2082,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 25, EndLine: 25, - StartPos: 566, + StartPos: 565, EndPos: 568, }, Expr: &scalar.Dnumber{ Position: &position.Position{ StartLine: 25, EndLine: 25, - StartPos: 566, + StartPos: 565, EndPos: 567, }, Value: "0.", @@ -2100,14 +2099,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 26, EndLine: 26, - StartPos: 572, + StartPos: 571, EndPos: 638, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 26, EndLine: 26, - StartPos: 572, + StartPos: 571, EndPos: 637, }, Value: "0b0111111111111111111111111111111111111111111111111111111111111111", @@ -2117,14 +2116,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 27, EndLine: 27, - StartPos: 642, + StartPos: 641, EndPos: 708, }, Expr: &scalar.Dnumber{ Position: &position.Position{ StartLine: 27, EndLine: 27, - StartPos: 642, + StartPos: 641, EndPos: 707, }, Value: "0b1111111111111111111111111111111111111111111111111111111111111111", @@ -2134,14 +2133,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 28, EndLine: 28, - StartPos: 712, + StartPos: 711, EndPos: 732, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 28, EndLine: 28, - StartPos: 712, + StartPos: 711, EndPos: 731, }, Value: "0x007111111111111111", @@ -2151,14 +2150,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 29, EndLine: 29, - StartPos: 736, + StartPos: 735, EndPos: 754, }, Expr: &scalar.Dnumber{ Position: &position.Position{ StartLine: 29, EndLine: 29, - StartPos: 736, + StartPos: 735, EndPos: 753, }, Value: "0x8111111111111111", @@ -2168,14 +2167,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 758, + StartPos: 757, EndPos: 767, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 758, + StartPos: 757, EndPos: 766, }, Value: "__CLASS__", @@ -2185,14 +2184,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 771, + StartPos: 770, EndPos: 778, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 771, + StartPos: 770, EndPos: 777, }, Value: "__DIR__", @@ -2202,14 +2201,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 782, + StartPos: 781, EndPos: 790, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 782, + StartPos: 781, EndPos: 789, }, Value: "__FILE__", @@ -2219,14 +2218,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 794, + StartPos: 793, EndPos: 806, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 794, + StartPos: 793, EndPos: 805, }, Value: "__FUNCTION__", @@ -2236,14 +2235,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 810, + StartPos: 809, EndPos: 818, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 810, + StartPos: 809, EndPos: 817, }, Value: "__LINE__", @@ -2253,14 +2252,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 822, + StartPos: 821, EndPos: 835, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 822, + StartPos: 821, EndPos: 834, }, Value: "__NAMESPACE__", @@ -2270,14 +2269,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 839, + StartPos: 838, EndPos: 849, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 839, + StartPos: 838, EndPos: 848, }, Value: "__METHOD__", @@ -2287,14 +2286,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 853, + StartPos: 852, EndPos: 862, }, Expr: &scalar.MagicConstant{ Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 853, + StartPos: 852, EndPos: 861, }, Value: "__TRAIT__", @@ -2304,14 +2303,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 867, + StartPos: 866, EndPos: 878, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 867, + StartPos: 866, EndPos: 877, }, Parts: []node.Node{ @@ -2319,7 +2318,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 868, + StartPos: 867, EndPos: 872, }, Value: "test ", @@ -2328,14 +2327,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 873, + StartPos: 872, EndPos: 876, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 873, + StartPos: 872, EndPos: 876, }, Value: "var", @@ -2348,14 +2347,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 882, + StartPos: 881, EndPos: 896, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 882, + StartPos: 881, EndPos: 895, }, Parts: []node.Node{ @@ -2363,7 +2362,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 883, + StartPos: 882, EndPos: 887, }, Value: "test ", @@ -2372,21 +2371,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 888, + StartPos: 887, EndPos: 894, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 888, + StartPos: 887, EndPos: 891, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 888, + StartPos: 887, EndPos: 891, }, Value: "var", @@ -2396,7 +2395,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 893, + StartPos: 892, EndPos: 893, }, Value: "1", @@ -2409,14 +2408,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 900, + StartPos: 899, EndPos: 915, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 900, + StartPos: 899, EndPos: 914, }, Parts: []node.Node{ @@ -2424,7 +2423,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 901, + StartPos: 900, EndPos: 905, }, Value: "test ", @@ -2433,21 +2432,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 906, + StartPos: 905, EndPos: 913, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 906, + StartPos: 905, EndPos: 909, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 906, + StartPos: 905, EndPos: 909, }, Value: "var", @@ -2457,14 +2456,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 911, + StartPos: 910, EndPos: 912, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 911, + StartPos: 910, EndPos: 912, }, Value: "1", @@ -2478,14 +2477,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 919, + StartPos: 918, EndPos: 972, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 919, + StartPos: 918, EndPos: 971, }, Parts: []node.Node{ @@ -2493,7 +2492,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 920, + StartPos: 919, EndPos: 924, }, Value: "test ", @@ -2502,21 +2501,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 925, + StartPos: 924, EndPos: 970, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 925, + StartPos: 924, EndPos: 928, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 925, + StartPos: 924, EndPos: 928, }, Value: "var", @@ -2526,7 +2525,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 930, + StartPos: 929, EndPos: 969, }, Value: "1234567890123456789012345678901234567890", @@ -2539,14 +2538,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 976, + StartPos: 975, EndPos: 1030, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 976, + StartPos: 975, EndPos: 1029, }, Parts: []node.Node{ @@ -2554,7 +2553,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 977, + StartPos: 976, EndPos: 981, }, Value: "test ", @@ -2563,21 +2562,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 982, + StartPos: 981, EndPos: 1028, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 982, + StartPos: 981, EndPos: 985, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 982, + StartPos: 981, EndPos: 985, }, Value: "var", @@ -2587,7 +2586,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 987, + StartPos: 986, EndPos: 1027, }, Value: "-1234567890123456789012345678901234567890", @@ -2600,14 +2599,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1034, + StartPos: 1033, EndPos: 1050, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1034, + StartPos: 1033, EndPos: 1049, }, Parts: []node.Node{ @@ -2615,7 +2614,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1035, + StartPos: 1034, EndPos: 1039, }, Value: "test ", @@ -2624,21 +2623,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1040, + StartPos: 1039, EndPos: 1048, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1040, + StartPos: 1039, EndPos: 1043, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1040, + StartPos: 1039, EndPos: 1043, }, Value: "var", @@ -2648,7 +2647,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1045, + StartPos: 1044, EndPos: 1047, }, Value: "bar", @@ -2661,14 +2660,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1054, + StartPos: 1053, EndPos: 1071, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1054, + StartPos: 1053, EndPos: 1070, }, Parts: []node.Node{ @@ -2676,7 +2675,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1055, + StartPos: 1054, EndPos: 1059, }, Value: "test ", @@ -2685,21 +2684,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1060, + StartPos: 1059, EndPos: 1069, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1060, + StartPos: 1059, EndPos: 1063, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1060, + StartPos: 1059, EndPos: 1063, }, Value: "var", @@ -2709,14 +2708,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1065, + StartPos: 1064, EndPos: 1068, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1065, + StartPos: 1064, EndPos: 1068, }, Value: "bar", @@ -2730,14 +2729,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1075, + StartPos: 1074, EndPos: 1086, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1075, + StartPos: 1074, EndPos: 1085, }, Parts: []node.Node{ @@ -2745,14 +2744,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1076, + StartPos: 1075, EndPos: 1079, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1076, + StartPos: 1075, EndPos: 1079, }, Value: "foo", @@ -2762,7 +2761,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1080, + StartPos: 1079, EndPos: 1080, }, Value: " ", @@ -2771,14 +2770,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1081, + StartPos: 1080, EndPos: 1084, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1081, + StartPos: 1080, EndPos: 1084, }, Value: "bar", @@ -2791,14 +2790,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1090, + StartPos: 1089, EndPos: 1108, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1090, + StartPos: 1089, EndPos: 1107, }, Parts: []node.Node{ @@ -2806,7 +2805,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1091, + StartPos: 1090, EndPos: 1095, }, Value: "test ", @@ -2815,21 +2814,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1096, + StartPos: 1095, EndPos: 1104, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1096, + StartPos: 1095, EndPos: 1099, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1096, + StartPos: 1095, EndPos: 1099, }, Value: "foo", @@ -2839,7 +2838,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1102, + StartPos: 1101, EndPos: 1104, }, Value: "bar", @@ -2849,7 +2848,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1105, + StartPos: 1104, EndPos: 1106, }, Value: "()", @@ -2861,14 +2860,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1112, + StartPos: 1111, EndPos: 1125, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1112, + StartPos: 1111, EndPos: 1124, }, Parts: []node.Node{ @@ -2876,7 +2875,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1113, + StartPos: 1112, EndPos: 1117, }, Value: "test ", @@ -2885,14 +2884,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1118, + StartPos: 1117, EndPos: 1123, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1120, + StartPos: 1119, EndPos: 1122, }, Value: "foo", @@ -2905,14 +2904,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1129, + StartPos: 1128, EndPos: 1145, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1129, + StartPos: 1128, EndPos: 1144, }, Parts: []node.Node{ @@ -2920,7 +2919,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1130, + StartPos: 1129, EndPos: 1134, }, Value: "test ", @@ -2929,21 +2928,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1135, + StartPos: 1134, EndPos: 1143, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1137, + StartPos: 1136, EndPos: 1139, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1137, + StartPos: 1136, EndPos: 1139, }, Value: "foo", @@ -2953,7 +2952,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1141, + StartPos: 1140, EndPos: 1141, }, Value: "0", @@ -2966,14 +2965,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1149, + StartPos: 1148, EndPos: 1163, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1149, + StartPos: 1148, EndPos: 1162, }, Parts: []node.Node{ @@ -2981,7 +2980,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1150, + StartPos: 1149, EndPos: 1154, }, Value: "test ", @@ -2990,21 +2989,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1155, + StartPos: 1154, EndPos: 1161, }, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1157, + StartPos: 1156, EndPos: 1160, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1157, + StartPos: 1156, EndPos: 1160, }, Value: "foo", @@ -3018,14 +3017,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1167, + StartPos: 1166, EndPos: 1187, }, Expr: &scalar.Encapsed{ Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1167, + StartPos: 1166, EndPos: 1186, }, Parts: []node.Node{ @@ -3033,7 +3032,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1168, + StartPos: 1167, EndPos: 1172, }, Value: "test ", @@ -3042,21 +3041,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1174, + StartPos: 1173, EndPos: 1184, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1174, + StartPos: 1173, EndPos: 1177, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1174, + StartPos: 1173, EndPos: 1177, }, Value: "foo", @@ -3066,7 +3065,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1180, + StartPos: 1179, EndPos: 1182, }, Value: "bar", @@ -3075,7 +3074,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1183, + StartPos: 1182, EndPos: 1184, }, }, @@ -3087,21 +3086,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 53, EndLine: 54, - StartPos: 1192, + StartPos: 1191, EndPos: 1209, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 53, EndLine: 53, - StartPos: 1196, + StartPos: 1195, EndPos: 1197, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 53, EndLine: 53, - StartPos: 1196, + StartPos: 1195, EndPos: 1197, }, Value: "a", @@ -3121,21 +3120,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 57, - StartPos: 1213, + StartPos: 1212, EndPos: 1245, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1217, + StartPos: 1216, EndPos: 1218, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1217, + StartPos: 1216, EndPos: 1218, }, Value: "a", @@ -3155,21 +3154,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: -1, - StartPos: 1225, + StartPos: 1224, EndPos: -1, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1233, + StartPos: 1232, EndPos: 1234, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1233, + StartPos: 1232, EndPos: 1234, }, Value: "b", @@ -3191,21 +3190,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 60, - StartPos: 1249, + StartPos: 1248, EndPos: 1274, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1253, + StartPos: 1252, EndPos: 1254, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1253, + StartPos: 1252, EndPos: 1254, }, Value: "a", @@ -3224,7 +3223,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: -1, - StartPos: 1261, + StartPos: 1260, EndPos: -1, }, Stmt: &stmt.StmtList{ @@ -3242,21 +3241,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 65, - StartPos: 1278, + StartPos: 1277, EndPos: 1333, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1282, + StartPos: 1281, EndPos: 1283, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1282, + StartPos: 1281, EndPos: 1283, }, Value: "a", @@ -3276,21 +3275,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: -1, - StartPos: 1290, + StartPos: 1289, EndPos: -1, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1298, + StartPos: 1297, EndPos: 1299, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1298, + StartPos: 1297, EndPos: 1299, }, Value: "b", @@ -3310,21 +3309,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: -1, - StartPos: 1305, + StartPos: 1304, EndPos: -1, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1313, + StartPos: 1312, EndPos: 1314, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1313, + StartPos: 1312, EndPos: 1314, }, Value: "c", @@ -3345,7 +3344,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: -1, - StartPos: 1320, + StartPos: 1319, EndPos: -1, }, Stmt: &stmt.StmtList{ @@ -3363,14 +3362,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1338, + StartPos: 1337, EndPos: 1357, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1345, + StartPos: 1344, EndPos: 1345, }, Value: "1", @@ -3379,7 +3378,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1348, + StartPos: 1347, EndPos: 1357, }, Stmts: []node.Node{ @@ -3387,7 +3386,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1350, + StartPos: 1349, EndPos: 1355, }, }, @@ -3398,14 +3397,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1361, + StartPos: 1360, EndPos: 1382, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1368, + StartPos: 1367, EndPos: 1368, }, Value: "1", @@ -3414,7 +3413,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1371, + StartPos: 1370, EndPos: 1382, }, Stmts: []node.Node{ @@ -3422,14 +3421,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1373, + StartPos: 1372, EndPos: 1380, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1379, + StartPos: 1378, EndPos: 1379, }, Value: "2", @@ -3442,14 +3441,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1386, + StartPos: 1385, EndPos: 1416, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1393, + StartPos: 1392, EndPos: 1393, }, Value: "1", @@ -3458,7 +3457,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1398, + StartPos: 1397, EndPos: 1406, }, Stmts: []node.Node{ @@ -3466,14 +3465,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1398, + StartPos: 1397, EndPos: 1406, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1404, + StartPos: 1403, EndPos: 1404, }, Value: "3", @@ -3486,7 +3485,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1420, + StartPos: 1419, EndPos: 1462, }, PhpDocComment: "", @@ -3494,7 +3493,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1426, + StartPos: 1425, EndPos: 1428, }, Value: "foo", @@ -3504,7 +3503,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1431, + StartPos: 1430, EndPos: 1460, }, Modifiers: []node.Node{ @@ -3512,7 +3511,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1431, + StartPos: 1430, EndPos: 1436, }, Value: "public", @@ -3523,7 +3522,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1444, + StartPos: 1443, EndPos: 1450, }, PhpDocComment: "", @@ -3531,7 +3530,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1444, + StartPos: 1443, EndPos: 1446, }, Value: "FOO", @@ -3540,7 +3539,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1450, + StartPos: 1449, EndPos: 1450, }, Value: "1", @@ -3550,7 +3549,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1453, + StartPos: 1452, EndPos: 1459, }, PhpDocComment: "", @@ -3558,7 +3557,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1453, + StartPos: 1452, EndPos: 1455, }, Value: "BAR", @@ -3567,7 +3566,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1459, + StartPos: 1458, EndPos: 1459, }, Value: "2", @@ -3581,7 +3580,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1466, + StartPos: 1465, EndPos: 1501, }, PhpDocComment: "", @@ -3589,7 +3588,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1472, + StartPos: 1471, EndPos: 1474, }, Value: "foo", @@ -3599,7 +3598,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1477, + StartPos: 1476, EndPos: 1499, }, Consts: []node.Node{ @@ -3607,7 +3606,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1483, + StartPos: 1482, EndPos: 1489, }, PhpDocComment: "", @@ -3615,7 +3614,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1483, + StartPos: 1482, EndPos: 1485, }, Value: "FOO", @@ -3624,7 +3623,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1489, + StartPos: 1488, EndPos: 1489, }, Value: "1", @@ -3634,7 +3633,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1492, + StartPos: 1491, EndPos: 1498, }, PhpDocComment: "", @@ -3642,7 +3641,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1492, + StartPos: 1491, EndPos: 1494, }, Value: "BAR", @@ -3651,7 +3650,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1498, + StartPos: 1497, EndPos: 1498, }, Value: "2", @@ -3665,7 +3664,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1505, + StartPos: 1504, EndPos: 1534, }, PhpDocComment: "", @@ -3673,7 +3672,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1511, + StartPos: 1510, EndPos: 1513, }, Value: "foo", @@ -3683,16 +3682,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1516, + StartPos: 1515, EndPos: 1532, }, - PhpDocComment: "", ReturnsRef: false, + PhpDocComment: "", MethodName: &node.Identifier{ Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1525, + StartPos: 1524, EndPos: 1527, }, Value: "bar", @@ -3701,7 +3700,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1531, + StartPos: 1530, EndPos: 1532, }, Stmts: []node.Node{}, @@ -3713,7 +3712,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1538, + StartPos: 1537, EndPos: 1582, }, PhpDocComment: "", @@ -3721,7 +3720,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1544, + StartPos: 1543, EndPos: 1546, }, Value: "foo", @@ -3731,7 +3730,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1549, + StartPos: 1548, EndPos: 1580, }, ReturnsRef: true, @@ -3740,7 +3739,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1573, + StartPos: 1572, EndPos: 1575, }, Value: "bar", @@ -3750,7 +3749,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1549, + StartPos: 1548, EndPos: 1554, }, Value: "public", @@ -3759,7 +3758,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1556, + StartPos: 1555, EndPos: 1561, }, Value: "static", @@ -3769,7 +3768,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1579, + StartPos: 1578, EndPos: 1580, }, Stmts: []node.Node{}, @@ -3781,7 +3780,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1586, + StartPos: 1585, EndPos: 1636, }, PhpDocComment: "", @@ -3789,7 +3788,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1592, + StartPos: 1591, EndPos: 1594, }, Value: "foo", @@ -3799,7 +3798,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1597, + StartPos: 1596, EndPos: 1634, }, ReturnsRef: true, @@ -3808,7 +3807,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1621, + StartPos: 1620, EndPos: 1623, }, Value: "bar", @@ -3818,7 +3817,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1597, + StartPos: 1596, EndPos: 1602, }, Value: "public", @@ -3827,7 +3826,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1604, + StartPos: 1603, EndPos: 1609, }, Value: "static", @@ -3837,7 +3836,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1628, + StartPos: 1627, EndPos: 1631, }, Parts: []node.Node{ @@ -3845,7 +3844,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1628, + StartPos: 1627, EndPos: 1631, }, Value: "void", @@ -3856,7 +3855,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1633, + StartPos: 1632, EndPos: 1634, }, Stmts: []node.Node{}, @@ -3868,7 +3867,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1640, + StartPos: 1639, EndPos: 1660, }, PhpDocComment: "", @@ -3876,7 +3875,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1655, + StartPos: 1654, EndPos: 1657, }, Value: "foo", @@ -3886,7 +3885,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1640, + StartPos: 1639, EndPos: 1647, }, Value: "abstract", @@ -3898,7 +3897,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1664, + StartPos: 1663, EndPos: 1694, }, PhpDocComment: "", @@ -3906,7 +3905,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1676, + StartPos: 1675, EndPos: 1678, }, Value: "foo", @@ -3916,7 +3915,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1664, + StartPos: 1663, EndPos: 1668, }, Value: "final", @@ -3926,14 +3925,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1680, + StartPos: 1679, EndPos: 1690, }, ClassName: &name.Name{ Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1688, + StartPos: 1687, EndPos: 1690, }, Parts: []node.Node{ @@ -3941,7 +3940,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1688, + StartPos: 1687, EndPos: 1690, }, Value: "bar", @@ -3955,7 +3954,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1698, + StartPos: 1697, EndPos: 1731, }, PhpDocComment: "", @@ -3963,7 +3962,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1710, + StartPos: 1709, EndPos: 1712, }, Value: "foo", @@ -3973,7 +3972,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1698, + StartPos: 1697, EndPos: 1702, }, Value: "final", @@ -3983,7 +3982,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1714, + StartPos: 1713, EndPos: 1727, }, InterfaceNames: []node.Node{ @@ -3991,7 +3990,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1725, + StartPos: 1724, EndPos: 1727, }, Parts: []node.Node{ @@ -3999,7 +3998,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1725, + StartPos: 1724, EndPos: 1727, }, Value: "bar", @@ -4014,7 +4013,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1735, + StartPos: 1734, EndPos: 1773, }, PhpDocComment: "", @@ -4022,7 +4021,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1747, + StartPos: 1746, EndPos: 1749, }, Value: "foo", @@ -4032,7 +4031,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1735, + StartPos: 1734, EndPos: 1739, }, Value: "final", @@ -4042,7 +4041,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1751, + StartPos: 1750, EndPos: 1769, }, InterfaceNames: []node.Node{ @@ -4050,7 +4049,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1762, + StartPos: 1761, EndPos: 1764, }, Parts: []node.Node{ @@ -4058,7 +4057,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1762, + StartPos: 1761, EndPos: 1764, }, Value: "bar", @@ -4069,7 +4068,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1767, + StartPos: 1766, EndPos: 1769, }, Parts: []node.Node{ @@ -4077,7 +4076,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1767, + StartPos: 1766, EndPos: 1769, }, Value: "baz", @@ -4092,21 +4091,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1777, + StartPos: 1776, EndPos: 1824, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1777, + StartPos: 1776, EndPos: 1823, }, Class: &stmt.Class{ Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1781, + StartPos: 1780, EndPos: 1823, }, PhpDocComment: "", @@ -4114,7 +4113,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1786, + StartPos: 1785, EndPos: 1787, }, }, @@ -4122,14 +4121,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1789, + StartPos: 1788, EndPos: 1799, }, ClassName: &name.Name{ Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1797, + StartPos: 1796, EndPos: 1799, }, Parts: []node.Node{ @@ -4137,7 +4136,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1797, + StartPos: 1796, EndPos: 1799, }, Value: "foo", @@ -4149,7 +4148,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1801, + StartPos: 1800, EndPos: 1819, }, InterfaceNames: []node.Node{ @@ -4157,7 +4156,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1812, + StartPos: 1811, EndPos: 1814, }, Parts: []node.Node{ @@ -4165,7 +4164,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1812, + StartPos: 1811, EndPos: 1814, }, Value: "bar", @@ -4176,7 +4175,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1817, + StartPos: 1816, EndPos: 1819, }, Parts: []node.Node{ @@ -4184,7 +4183,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1817, + StartPos: 1816, EndPos: 1819, }, Value: "baz", @@ -4201,7 +4200,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1829, + StartPos: 1828, EndPos: 1851, }, Consts: []node.Node{ @@ -4209,7 +4208,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1835, + StartPos: 1834, EndPos: 1841, }, PhpDocComment: "", @@ -4217,7 +4216,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1835, + StartPos: 1834, EndPos: 1837, }, Value: "FOO", @@ -4226,7 +4225,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1841, + StartPos: 1840, EndPos: 1841, }, Value: "1", @@ -4236,7 +4235,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1844, + StartPos: 1843, EndPos: 1850, }, PhpDocComment: "", @@ -4244,7 +4243,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1844, + StartPos: 1843, EndPos: 1846, }, Value: "BAR", @@ -4253,7 +4252,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1850, + StartPos: 1849, EndPos: 1850, }, Value: "2", @@ -4265,14 +4264,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1855, + StartPos: 1854, EndPos: 1877, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1862, + StartPos: 1861, EndPos: 1862, }, Value: "1", @@ -4281,7 +4280,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1865, + StartPos: 1864, EndPos: 1877, }, Stmts: []node.Node{ @@ -4289,7 +4288,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1867, + StartPos: 1866, EndPos: 1875, }, }, @@ -4300,14 +4299,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1881, + StartPos: 1880, EndPos: 1905, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1888, + StartPos: 1887, EndPos: 1888, }, Value: "1", @@ -4316,7 +4315,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1891, + StartPos: 1890, EndPos: 1905, }, Stmts: []node.Node{ @@ -4324,14 +4323,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1893, + StartPos: 1892, EndPos: 1903, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1902, + StartPos: 1901, EndPos: 1902, }, Value: "2", @@ -4344,14 +4343,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1909, + StartPos: 1908, EndPos: 1934, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1916, + StartPos: 1915, EndPos: 1916, }, Value: "1", @@ -4360,7 +4359,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1919, + StartPos: 1918, EndPos: 1934, }, Stmts: []node.Node{ @@ -4368,14 +4367,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1921, + StartPos: 1920, EndPos: 1932, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1930, + StartPos: 1929, EndPos: 1930, }, Value: "3", @@ -4388,15 +4387,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1938, + StartPos: 1937, EndPos: 1954, }, + Alt: false, Consts: []node.Node{ &stmt.Constant{ Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1946, + StartPos: 1945, EndPos: 1952, }, PhpDocComment: "", @@ -4404,7 +4404,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1946, + StartPos: 1945, EndPos: 1950, }, Value: "ticks", @@ -4413,7 +4413,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1952, + StartPos: 1951, EndPos: 1952, }, Value: "1", @@ -4424,7 +4424,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1954, + StartPos: 1953, EndPos: 1954, }, }, @@ -4433,15 +4433,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1958, + StartPos: 1957, EndPos: 1976, }, + Alt: false, Consts: []node.Node{ &stmt.Constant{ Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1966, + StartPos: 1965, EndPos: 1972, }, PhpDocComment: "", @@ -4449,7 +4450,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1966, + StartPos: 1965, EndPos: 1970, }, Value: "ticks", @@ -4458,7 +4459,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1972, + StartPos: 1971, EndPos: 1972, }, Value: "1", @@ -4469,7 +4470,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1975, + StartPos: 1974, EndPos: 1976, }, Stmts: []node.Node{}, @@ -4479,7 +4480,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 87, EndLine: 87, - StartPos: 1980, + StartPos: 1979, EndPos: 2008, }, Alt: true, @@ -4488,7 +4489,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 87, EndLine: 87, - StartPos: 1988, + StartPos: 1987, EndPos: 1994, }, PhpDocComment: "", @@ -4496,7 +4497,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 87, EndLine: 87, - StartPos: 1988, + StartPos: 1987, EndPos: 1992, }, Value: "ticks", @@ -4505,7 +4506,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 87, EndLine: 87, - StartPos: 1994, + StartPos: 1993, EndPos: 1994, }, Value: "1", @@ -4526,14 +4527,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 88, EndLine: 88, - StartPos: 2012, + StartPos: 2011, EndPos: 2026, }, Stmt: &stmt.StmtList{ Position: &position.Position{ StartLine: 88, EndLine: 88, - StartPos: 2015, + StartPos: 2014, EndPos: 2016, }, Stmts: []node.Node{}, @@ -4542,7 +4543,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 88, EndLine: 88, - StartPos: 2024, + StartPos: 2023, EndPos: 2024, }, Value: "1", @@ -4552,7 +4553,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2030, + StartPos: 2029, EndPos: 2040, }, Exprs: []node.Node{ @@ -4560,14 +4561,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2035, + StartPos: 2034, EndPos: 2036, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2035, + StartPos: 2034, EndPos: 2036, }, Value: "a", @@ -4577,7 +4578,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2039, + StartPos: 2038, EndPos: 2039, }, Value: "1", @@ -4588,7 +4589,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2044, + StartPos: 2043, EndPos: 2052, }, Exprs: []node.Node{ @@ -4596,14 +4597,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2049, + StartPos: 2048, EndPos: 2050, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2049, + StartPos: 2048, EndPos: 2050, }, Value: "a", @@ -4615,7 +4616,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2056, + StartPos: 2055, EndPos: 2090, }, Init: []node.Node{ @@ -4623,21 +4624,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2060, + StartPos: 2059, EndPos: 2065, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2060, + StartPos: 2059, EndPos: 2061, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2060, + StartPos: 2059, EndPos: 2061, }, Value: "i", @@ -4647,7 +4648,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2065, + StartPos: 2064, EndPos: 2065, }, Value: "0", @@ -4659,21 +4660,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2068, + StartPos: 2067, EndPos: 2074, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2068, + StartPos: 2067, EndPos: 2069, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2068, + StartPos: 2067, EndPos: 2069, }, Value: "i", @@ -4683,7 +4684,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2073, + StartPos: 2072, EndPos: 2074, }, Value: "10", @@ -4695,21 +4696,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2077, + StartPos: 2076, EndPos: 2080, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2077, + StartPos: 2076, EndPos: 2078, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2077, + StartPos: 2076, EndPos: 2078, }, Value: "i", @@ -4720,21 +4721,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2083, + StartPos: 2082, EndPos: 2086, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2083, + StartPos: 2082, EndPos: 2084, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2083, + StartPos: 2082, EndPos: 2084, }, Value: "i", @@ -4746,7 +4747,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2089, + StartPos: 2088, EndPos: 2090, }, Stmts: []node.Node{}, @@ -4756,7 +4757,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2094, + StartPos: 2093, EndPos: 2129, }, Cond: []node.Node{ @@ -4764,21 +4765,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2100, + StartPos: 2099, EndPos: 2106, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2100, + StartPos: 2099, EndPos: 2101, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2100, + StartPos: 2099, EndPos: 2101, }, Value: "i", @@ -4788,7 +4789,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2105, + StartPos: 2104, EndPos: 2106, }, Value: "10", @@ -4800,21 +4801,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2109, + StartPos: 2108, EndPos: 2112, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2109, + StartPos: 2108, EndPos: 2110, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2109, + StartPos: 2108, EndPos: 2110, }, Value: "i", @@ -4825,21 +4826,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2115, + StartPos: 2114, EndPos: 2118, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2115, + StartPos: 2114, EndPos: 2116, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2115, + StartPos: 2114, EndPos: 2116, }, Value: "i", @@ -4861,21 +4862,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2133, + StartPos: 2132, EndPos: 2153, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2142, + StartPos: 2141, EndPos: 2143, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2142, + StartPos: 2141, EndPos: 2143, }, Value: "a", @@ -4885,14 +4886,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2148, + StartPos: 2147, EndPos: 2149, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2148, + StartPos: 2147, EndPos: 2149, }, Value: "v", @@ -4902,7 +4903,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2152, + StartPos: 2151, EndPos: 2153, }, Stmts: []node.Node{}, @@ -4912,21 +4913,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2157, + StartPos: 2156, EndPos: 2188, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2166, + StartPos: 2165, EndPos: 2167, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2166, + StartPos: 2165, EndPos: 2167, }, Value: "a", @@ -4936,14 +4937,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2172, + StartPos: 2171, EndPos: 2173, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2172, + StartPos: 2171, EndPos: 2173, }, Value: "v", @@ -4963,21 +4964,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2192, + StartPos: 2191, EndPos: 2218, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2201, + StartPos: 2200, EndPos: 2202, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2201, + StartPos: 2200, EndPos: 2202, }, Value: "a", @@ -4987,14 +4988,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2207, + StartPos: 2206, EndPos: 2208, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2207, + StartPos: 2206, EndPos: 2208, }, Value: "k", @@ -5004,14 +5005,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2213, + StartPos: 2212, EndPos: 2214, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2213, + StartPos: 2212, EndPos: 2214, }, Value: "v", @@ -5021,7 +5022,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2217, + StartPos: 2216, EndPos: 2218, }, Stmts: []node.Node{}, @@ -5031,21 +5032,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2222, + StartPos: 2221, EndPos: 2249, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2231, + StartPos: 2230, EndPos: 2232, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2231, + StartPos: 2230, EndPos: 2232, }, Value: "a", @@ -5055,14 +5056,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2237, + StartPos: 2236, EndPos: 2238, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2237, + StartPos: 2236, EndPos: 2238, }, Value: "k", @@ -5072,21 +5073,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2243, + StartPos: 2242, EndPos: 2245, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2244, + StartPos: 2243, EndPos: 2245, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2244, + StartPos: 2243, EndPos: 2245, }, Value: "v", @@ -5097,7 +5098,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2248, + StartPos: 2247, EndPos: 2249, }, Stmts: []node.Node{}, @@ -5107,21 +5108,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2253, + StartPos: 2252, EndPos: 2285, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2262, + StartPos: 2261, EndPos: 2263, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2262, + StartPos: 2261, EndPos: 2263, }, Value: "a", @@ -5131,14 +5132,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2268, + StartPos: 2267, EndPos: 2269, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2268, + StartPos: 2267, EndPos: 2269, }, Value: "k", @@ -5148,7 +5149,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2274, + StartPos: 2273, EndPos: 2281, }, Items: []node.Node{ @@ -5156,21 +5157,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2279, + StartPos: 2278, EndPos: 2280, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2279, + StartPos: 2278, EndPos: 2280, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2279, + StartPos: 2278, EndPos: 2280, }, Value: "v", @@ -5183,7 +5184,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2284, + StartPos: 2283, EndPos: 2285, }, Stmts: []node.Node{}, @@ -5193,21 +5194,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2289, + StartPos: 2288, EndPos: 2317, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2298, + StartPos: 2297, EndPos: 2299, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2298, + StartPos: 2297, EndPos: 2299, }, Value: "a", @@ -5217,14 +5218,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2304, + StartPos: 2303, EndPos: 2305, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2304, + StartPos: 2303, EndPos: 2305, }, Value: "k", @@ -5234,7 +5235,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2310, + StartPos: 2309, EndPos: 2313, }, Items: []node.Node{ @@ -5242,21 +5243,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2311, + StartPos: 2310, EndPos: 2312, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2311, + StartPos: 2310, EndPos: 2312, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2311, + StartPos: 2310, EndPos: 2312, }, Value: "v", @@ -5269,7 +5270,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2316, + StartPos: 2315, EndPos: 2317, }, Stmts: []node.Node{}, @@ -5279,7 +5280,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 99, EndLine: 99, - StartPos: 2321, + StartPos: 2320, EndPos: 2337, }, ReturnsRef: false, @@ -5288,7 +5289,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 99, EndLine: 99, - StartPos: 2330, + StartPos: 2329, EndPos: 2332, }, Value: "foo", @@ -5299,16 +5300,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2341, + StartPos: 2340, EndPos: 2364, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2350, + StartPos: 2349, EndPos: 2352, }, Value: "foo", @@ -5318,7 +5319,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2357, + StartPos: 2356, EndPos: 2363, }, }, @@ -5328,7 +5329,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2368, + StartPos: 2367, EndPos: 2394, }, ReturnsRef: true, @@ -5337,7 +5338,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2378, + StartPos: 2377, EndPos: 2380, }, Value: "foo", @@ -5347,14 +5348,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2385, + StartPos: 2384, EndPos: 2393, }, Expr: &scalar.Lnumber{ Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2392, + StartPos: 2391, EndPos: 2392, }, Value: "1", @@ -5366,7 +5367,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2398, + StartPos: 2397, EndPos: 2421, }, ReturnsRef: true, @@ -5375,7 +5376,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2408, + StartPos: 2407, EndPos: 2410, }, Value: "foo", @@ -5384,7 +5385,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2415, + StartPos: 2414, EndPos: 2418, }, Parts: []node.Node{ @@ -5392,7 +5393,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2415, + StartPos: 2414, EndPos: 2418, }, Value: "void", @@ -5405,7 +5406,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2425, + StartPos: 2424, EndPos: 2438, }, Vars: []node.Node{ @@ -5413,14 +5414,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2432, + StartPos: 2431, EndPos: 2433, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2432, + StartPos: 2431, EndPos: 2433, }, Value: "a", @@ -5430,14 +5431,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2436, + StartPos: 2435, EndPos: 2437, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2436, + StartPos: 2435, EndPos: 2437, }, Value: "b", @@ -5449,14 +5450,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2442, + StartPos: 2441, EndPos: 2443, }, LabelName: &node.Identifier{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2442, + StartPos: 2441, EndPos: 2442, }, Value: "a", @@ -5466,14 +5467,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 105, EndLine: 105, - StartPos: 2448, + StartPos: 2447, EndPos: 2454, }, Label: &node.Identifier{ Position: &position.Position{ StartLine: 105, EndLine: 105, - StartPos: 2453, + StartPos: 2452, EndPos: 2453, }, Value: "a", @@ -5483,21 +5484,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2458, + StartPos: 2457, EndPos: 2467, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2462, + StartPos: 2461, EndPos: 2463, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2462, + StartPos: 2461, EndPos: 2463, }, Value: "a", @@ -5507,7 +5508,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2466, + StartPos: 2465, EndPos: 2467, }, Stmts: []node.Node{}, @@ -5517,21 +5518,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2471, + StartPos: 2470, EndPos: 2495, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2475, + StartPos: 2474, EndPos: 2476, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2475, + StartPos: 2474, EndPos: 2476, }, Value: "a", @@ -5541,7 +5542,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2479, + StartPos: 2478, EndPos: 2480, }, Stmts: []node.Node{}, @@ -5551,21 +5552,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2482, + StartPos: 2481, EndPos: 2495, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2490, + StartPos: 2489, EndPos: 2491, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2490, + StartPos: 2489, EndPos: 2491, }, Value: "b", @@ -5575,7 +5576,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2494, + StartPos: 2493, EndPos: 2495, }, Stmts: []node.Node{}, @@ -5587,21 +5588,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2499, + StartPos: 2498, EndPos: 2516, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2503, + StartPos: 2502, EndPos: 2504, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2503, + StartPos: 2502, EndPos: 2504, }, Value: "a", @@ -5611,7 +5612,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2507, + StartPos: 2506, EndPos: 2508, }, Stmts: []node.Node{}, @@ -5620,14 +5621,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2510, + StartPos: 2509, EndPos: 2516, }, Stmt: &stmt.StmtList{ Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2515, + StartPos: 2514, EndPos: 2516, }, Stmts: []node.Node{}, @@ -5638,21 +5639,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2520, + StartPos: 2519, EndPos: 2567, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2524, + StartPos: 2523, EndPos: 2525, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2524, + StartPos: 2523, EndPos: 2525, }, Value: "a", @@ -5662,7 +5663,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2528, + StartPos: 2527, EndPos: 2529, }, Stmts: []node.Node{}, @@ -5672,21 +5673,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2531, + StartPos: 2530, EndPos: 2544, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2539, + StartPos: 2538, EndPos: 2540, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2539, + StartPos: 2538, EndPos: 2540, }, Value: "b", @@ -5696,7 +5697,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2543, + StartPos: 2542, EndPos: 2544, }, Stmts: []node.Node{}, @@ -5706,21 +5707,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2546, + StartPos: 2545, EndPos: 2559, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2554, + StartPos: 2553, EndPos: 2555, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2554, + StartPos: 2553, EndPos: 2555, }, Value: "c", @@ -5730,7 +5731,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2558, + StartPos: 2557, EndPos: 2559, }, Stmts: []node.Node{}, @@ -5741,14 +5742,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2561, + StartPos: 2560, EndPos: 2567, }, Stmt: &stmt.StmtList{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2566, + StartPos: 2565, EndPos: 2567, }, Stmts: []node.Node{}, @@ -5759,21 +5760,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2571, + StartPos: 2570, EndPos: 2619, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2575, + StartPos: 2574, EndPos: 2576, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2575, + StartPos: 2574, EndPos: 2576, }, Value: "a", @@ -5783,7 +5784,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2579, + StartPos: 2578, EndPos: 2580, }, Stmts: []node.Node{}, @@ -5793,21 +5794,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2582, + StartPos: 2581, EndPos: 2595, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2590, + StartPos: 2589, EndPos: 2591, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2590, + StartPos: 2589, EndPos: 2591, }, Value: "b", @@ -5817,7 +5818,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2594, + StartPos: 2593, EndPos: 2595, }, Stmts: []node.Node{}, @@ -5828,28 +5829,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2597, + StartPos: 2596, EndPos: 2619, }, Stmt: &stmt.If{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2602, + StartPos: 2601, EndPos: 2619, }, Cond: &expr.Variable{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2606, + StartPos: 2605, EndPos: 2607, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2606, + StartPos: 2605, EndPos: 2607, }, Value: "c", @@ -5859,7 +5860,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2610, + StartPos: 2609, EndPos: 2611, }, Stmts: []node.Node{}, @@ -5868,14 +5869,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2613, + StartPos: 2612, EndPos: 2619, }, Stmt: &stmt.StmtList{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2618, + StartPos: 2617, EndPos: 2619, }, Stmts: []node.Node{}, @@ -5888,7 +5889,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 111, EndLine: 111, - StartPos: 2623, + StartPos: 2622, EndPos: 2624, }, }, @@ -5896,16 +5897,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 111, EndLine: 111, - StartPos: 2626, + StartPos: 2624, EndPos: 2637, }, - Value: "
", + Value: "
", }, &stmt.Interface{ Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2643, + StartPos: 2642, EndPos: 2658, }, PhpDocComment: "", @@ -5913,7 +5914,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2653, + StartPos: 2652, EndPos: 2655, }, Value: "Foo", @@ -5924,7 +5925,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2662, + StartPos: 2661, EndPos: 2689, }, PhpDocComment: "", @@ -5932,7 +5933,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2672, + StartPos: 2671, EndPos: 2674, }, Value: "Foo", @@ -5941,7 +5942,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2676, + StartPos: 2675, EndPos: 2686, }, InterfaceNames: []node.Node{ @@ -5949,7 +5950,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2684, + StartPos: 2683, EndPos: 2686, }, Parts: []node.Node{ @@ -5957,7 +5958,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2684, + StartPos: 2683, EndPos: 2686, }, Value: "Bar", @@ -5972,7 +5973,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2693, + StartPos: 2692, EndPos: 2725, }, PhpDocComment: "", @@ -5980,7 +5981,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2703, + StartPos: 2702, EndPos: 2705, }, Value: "Foo", @@ -5989,7 +5990,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2707, + StartPos: 2706, EndPos: 2722, }, InterfaceNames: []node.Node{ @@ -5997,7 +5998,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2715, + StartPos: 2714, EndPos: 2717, }, Parts: []node.Node{ @@ -6005,7 +6006,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2715, + StartPos: 2714, EndPos: 2717, }, Value: "Bar", @@ -6016,7 +6017,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2720, + StartPos: 2719, EndPos: 2722, }, Parts: []node.Node{ @@ -6024,7 +6025,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2720, + StartPos: 2719, EndPos: 2722, }, Value: "Baz", @@ -6039,14 +6040,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2729, + StartPos: 2728, EndPos: 2742, }, NamespaceName: &name.Name{ Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2739, + StartPos: 2738, EndPos: 2741, }, Parts: []node.Node{ @@ -6054,7 +6055,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2739, + StartPos: 2738, EndPos: 2741, }, Value: "Foo", @@ -6066,14 +6067,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2746, + StartPos: 2745, EndPos: 2761, }, NamespaceName: &name.Name{ Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2756, + StartPos: 2755, EndPos: 2758, }, Parts: []node.Node{ @@ -6081,7 +6082,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2756, + StartPos: 2755, EndPos: 2758, }, Value: "Foo", @@ -6094,7 +6095,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 117, EndLine: 117, - StartPos: 2765, + StartPos: 2764, EndPos: 2776, }, Stmts: []node.Node{}, @@ -6103,7 +6104,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2780, + StartPos: 2779, EndPos: 2798, }, PhpDocComment: "", @@ -6111,7 +6112,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2786, + StartPos: 2785, EndPos: 2788, }, Value: "foo", @@ -6121,7 +6122,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2791, + StartPos: 2790, EndPos: 2797, }, Modifiers: []node.Node{ @@ -6129,7 +6130,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2791, + StartPos: 2790, EndPos: 2793, }, Value: "var", @@ -6140,7 +6141,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2795, + StartPos: 2794, EndPos: 2796, }, PhpDocComment: "", @@ -6148,14 +6149,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2795, + StartPos: 2794, EndPos: 2796, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2795, + StartPos: 2794, EndPos: 2796, }, Value: "a", @@ -6170,7 +6171,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2802, + StartPos: 2801, EndPos: 2838, }, PhpDocComment: "", @@ -6178,7 +6179,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2808, + StartPos: 2807, EndPos: 2810, }, Value: "foo", @@ -6188,7 +6189,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2813, + StartPos: 2812, EndPos: 2837, }, Modifiers: []node.Node{ @@ -6196,7 +6197,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2813, + StartPos: 2812, EndPos: 2818, }, Value: "public", @@ -6205,7 +6206,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2820, + StartPos: 2819, EndPos: 2825, }, Value: "static", @@ -6216,7 +6217,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2827, + StartPos: 2826, EndPos: 2828, }, PhpDocComment: "", @@ -6224,14 +6225,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2827, + StartPos: 2826, EndPos: 2828, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2827, + StartPos: 2826, EndPos: 2828, }, Value: "a", @@ -6242,7 +6243,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2831, + StartPos: 2830, EndPos: 2836, }, PhpDocComment: "", @@ -6250,14 +6251,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2831, + StartPos: 2830, EndPos: 2832, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2831, + StartPos: 2830, EndPos: 2832, }, Value: "b", @@ -6267,7 +6268,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2836, + StartPos: 2835, EndPos: 2836, }, Value: "1", @@ -6281,7 +6282,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2842, + StartPos: 2841, EndPos: 2859, }, Vars: []node.Node{ @@ -6289,21 +6290,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2849, + StartPos: 2848, EndPos: 2850, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2849, + StartPos: 2848, EndPos: 2850, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2849, + StartPos: 2848, EndPos: 2850, }, Value: "a", @@ -6314,21 +6315,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2853, + StartPos: 2852, EndPos: 2858, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2853, + StartPos: 2852, EndPos: 2854, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2853, + StartPos: 2852, EndPos: 2854, }, Value: "b", @@ -6338,7 +6339,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2858, + StartPos: 2857, EndPos: 2858, }, Value: "1", @@ -6350,14 +6351,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 122, EndLine: 126, - StartPos: 2864, + StartPos: 2863, EndPos: 2922, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 122, EndLine: 122, - StartPos: 2872, + StartPos: 2871, EndPos: 2872, }, Value: "1", @@ -6366,7 +6367,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 123, EndLine: -1, - StartPos: 2880, + StartPos: 2879, EndPos: -1, }, Cases: []node.Node{ @@ -6374,14 +6375,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 123, EndLine: -1, - StartPos: 2880, + StartPos: 2879, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 123, EndLine: 123, - StartPos: 2885, + StartPos: 2884, EndPos: 2885, }, Value: "1", @@ -6392,7 +6393,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 124, EndLine: -1, - StartPos: 2891, + StartPos: 2890, EndPos: -1, }, Stmts: []node.Node{}, @@ -6401,14 +6402,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 125, EndLine: -1, - StartPos: 2903, + StartPos: 2902, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 125, EndLine: 125, - StartPos: 2908, + StartPos: 2907, EndPos: 2908, }, Value: "2", @@ -6422,14 +6423,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 128, EndLine: 131, - StartPos: 2927, + StartPos: 2926, EndPos: 2974, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 128, EndLine: 128, - StartPos: 2935, + StartPos: 2934, EndPos: 2935, }, Value: "1", @@ -6438,7 +6439,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: -1, - StartPos: 2944, + StartPos: 2943, EndPos: -1, }, Cases: []node.Node{ @@ -6446,14 +6447,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: -1, - StartPos: 2944, + StartPos: 2943, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 129, EndLine: 129, - StartPos: 2949, + StartPos: 2948, EndPos: 2949, }, Value: "1", @@ -6464,14 +6465,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 130, EndLine: -1, - StartPos: 2955, + StartPos: 2954, EndPos: -1, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2960, + StartPos: 2959, EndPos: 2960, }, Value: "2", @@ -6485,14 +6486,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 133, EndLine: 136, - StartPos: 2981, + StartPos: 2980, EndPos: 3032, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 133, EndLine: 133, - StartPos: 2989, + StartPos: 2988, EndPos: 2989, }, Value: "1", @@ -6501,7 +6502,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 133, EndLine: 136, - StartPos: 2992, + StartPos: 2991, EndPos: 3032, }, Cases: []node.Node{ @@ -6509,14 +6510,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 2997, + StartPos: 2996, EndPos: 3010, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 3002, + StartPos: 3001, EndPos: 3002, }, Value: "1", @@ -6526,7 +6527,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 3005, + StartPos: 3004, EndPos: 3010, }, }, @@ -6536,14 +6537,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 3015, + StartPos: 3014, EndPos: 3028, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 3020, + StartPos: 3019, EndPos: 3020, }, Value: "2", @@ -6553,7 +6554,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 3023, + StartPos: 3022, EndPos: 3028, }, }, @@ -6566,14 +6567,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 138, EndLine: 141, - StartPos: 3039, + StartPos: 3038, EndPos: 3091, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 138, EndLine: 138, - StartPos: 3047, + StartPos: 3046, EndPos: 3047, }, Value: "1", @@ -6582,7 +6583,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 138, EndLine: 141, - StartPos: 3050, + StartPos: 3049, EndPos: 3091, }, Cases: []node.Node{ @@ -6590,14 +6591,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3056, + StartPos: 3055, EndPos: 3069, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3061, + StartPos: 3060, EndPos: 3061, }, Value: "1", @@ -6607,7 +6608,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3064, + StartPos: 3063, EndPos: 3069, }, }, @@ -6617,14 +6618,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3074, + StartPos: 3073, EndPos: 3087, }, Cond: &scalar.Lnumber{ Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3079, + StartPos: 3078, EndPos: 3079, }, Value: "2", @@ -6634,7 +6635,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3082, + StartPos: 3081, EndPos: 3087, }, }, @@ -6647,21 +6648,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3096, + StartPos: 3095, EndPos: 3104, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3102, + StartPos: 3101, EndPos: 3103, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3102, + StartPos: 3101, EndPos: 3103, }, Value: "e", @@ -6672,7 +6673,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 145, EndLine: 145, - StartPos: 3109, + StartPos: 3108, EndPos: 3120, }, PhpDocComment: "", @@ -6680,7 +6681,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 145, EndLine: 145, - StartPos: 3115, + StartPos: 3114, EndPos: 3117, }, Value: "Foo", @@ -6691,7 +6692,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3124, + StartPos: 3123, EndPos: 3145, }, PhpDocComment: "", @@ -6699,7 +6700,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3130, + StartPos: 3129, EndPos: 3132, }, Value: "Foo", @@ -6709,7 +6710,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3136, + StartPos: 3135, EndPos: 3143, }, Traits: []node.Node{ @@ -6717,7 +6718,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3140, + StartPos: 3139, EndPos: 3142, }, Parts: []node.Node{ @@ -6725,7 +6726,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3140, + StartPos: 3139, EndPos: 3142, }, Value: "Bar", @@ -6737,7 +6738,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3143, + StartPos: 3142, EndPos: 3143, }, }, @@ -6748,7 +6749,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3149, + StartPos: 3148, EndPos: 3177, }, PhpDocComment: "", @@ -6756,7 +6757,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3155, + StartPos: 3154, EndPos: 3157, }, Value: "Foo", @@ -6766,7 +6767,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3161, + StartPos: 3160, EndPos: 3175, }, Traits: []node.Node{ @@ -6774,7 +6775,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3165, + StartPos: 3164, EndPos: 3167, }, Parts: []node.Node{ @@ -6782,7 +6783,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3165, + StartPos: 3164, EndPos: 3167, }, Value: "Bar", @@ -6793,7 +6794,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3170, + StartPos: 3169, EndPos: 3172, }, Parts: []node.Node{ @@ -6801,7 +6802,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3170, + StartPos: 3169, EndPos: 3172, }, Value: "Baz", @@ -6813,7 +6814,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3174, + StartPos: 3173, EndPos: 3175, }, }, @@ -6824,7 +6825,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3181, + StartPos: 3180, EndPos: 3226, }, PhpDocComment: "", @@ -6832,7 +6833,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3187, + StartPos: 3186, EndPos: 3189, }, Value: "Foo", @@ -6842,7 +6843,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3193, + StartPos: 3192, EndPos: 3224, }, Traits: []node.Node{ @@ -6850,7 +6851,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3197, + StartPos: 3196, EndPos: 3199, }, Parts: []node.Node{ @@ -6858,7 +6859,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3197, + StartPos: 3196, EndPos: 3199, }, Value: "Bar", @@ -6869,7 +6870,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3202, + StartPos: 3201, EndPos: 3204, }, Parts: []node.Node{ @@ -6877,7 +6878,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3202, + StartPos: 3201, EndPos: 3204, }, Value: "Baz", @@ -6889,7 +6890,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3206, + StartPos: 3205, EndPos: 3224, }, Adaptations: []node.Node{ @@ -6897,21 +6898,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3208, + StartPos: 3207, EndPos: 3221, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3208, + StartPos: 3207, EndPos: 3210, }, Method: &node.Identifier{ Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3208, + StartPos: 3207, EndPos: 3210, }, Value: "one", @@ -6921,7 +6922,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3215, + StartPos: 3214, EndPos: 3221, }, Value: "include", @@ -6936,7 +6937,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3230, + StartPos: 3229, EndPos: 3274, }, PhpDocComment: "", @@ -6944,7 +6945,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3236, + StartPos: 3235, EndPos: 3238, }, Value: "Foo", @@ -6954,7 +6955,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3242, + StartPos: 3241, EndPos: 3272, }, Traits: []node.Node{ @@ -6962,7 +6963,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3246, + StartPos: 3245, EndPos: 3248, }, Parts: []node.Node{ @@ -6970,7 +6971,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3246, + StartPos: 3245, EndPos: 3248, }, Value: "Bar", @@ -6981,7 +6982,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3251, + StartPos: 3250, EndPos: 3253, }, Parts: []node.Node{ @@ -6989,7 +6990,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3251, + StartPos: 3250, EndPos: 3253, }, Value: "Baz", @@ -7001,7 +7002,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3255, + StartPos: 3254, EndPos: 3272, }, Adaptations: []node.Node{ @@ -7009,21 +7010,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3257, + StartPos: 3256, EndPos: 3269, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3257, + StartPos: 3256, EndPos: 3259, }, Method: &node.Identifier{ Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3257, + StartPos: 3256, EndPos: 3259, }, Value: "one", @@ -7033,7 +7034,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3264, + StartPos: 3263, EndPos: 3269, }, Value: "public", @@ -7048,7 +7049,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3278, + StartPos: 3277, EndPos: 3326, }, PhpDocComment: "", @@ -7056,7 +7057,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3284, + StartPos: 3283, EndPos: 3286, }, Value: "Foo", @@ -7066,7 +7067,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3290, + StartPos: 3289, EndPos: 3324, }, Traits: []node.Node{ @@ -7074,7 +7075,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3294, + StartPos: 3293, EndPos: 3296, }, Parts: []node.Node{ @@ -7082,7 +7083,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3294, + StartPos: 3293, EndPos: 3296, }, Value: "Bar", @@ -7093,7 +7094,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3299, + StartPos: 3298, EndPos: 3301, }, Parts: []node.Node{ @@ -7101,7 +7102,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3299, + StartPos: 3298, EndPos: 3301, }, Value: "Baz", @@ -7113,7 +7114,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3303, + StartPos: 3302, EndPos: 3324, }, Adaptations: []node.Node{ @@ -7121,21 +7122,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3305, + StartPos: 3304, EndPos: 3321, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3305, + StartPos: 3304, EndPos: 3307, }, Method: &node.Identifier{ Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3305, + StartPos: 3304, EndPos: 3307, }, Value: "one", @@ -7145,7 +7146,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3312, + StartPos: 3311, EndPos: 3317, }, Value: "public", @@ -7154,7 +7155,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3319, + StartPos: 3318, EndPos: 3321, }, Value: "two", @@ -7169,7 +7170,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3330, + StartPos: 3329, EndPos: 3406, }, PhpDocComment: "", @@ -7177,7 +7178,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3336, + StartPos: 3335, EndPos: 3338, }, Value: "Foo", @@ -7187,7 +7188,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3342, + StartPos: 3341, EndPos: 3404, }, Traits: []node.Node{ @@ -7195,7 +7196,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3346, + StartPos: 3345, EndPos: 3348, }, Parts: []node.Node{ @@ -7203,7 +7204,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3346, + StartPos: 3345, EndPos: 3348, }, Value: "Bar", @@ -7214,7 +7215,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3351, + StartPos: 3350, EndPos: 3353, }, Parts: []node.Node{ @@ -7222,7 +7223,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3351, + StartPos: 3350, EndPos: 3353, }, Value: "Baz", @@ -7234,7 +7235,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3355, + StartPos: 3354, EndPos: 3404, }, Adaptations: []node.Node{ @@ -7242,21 +7243,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3357, + StartPos: 3356, EndPos: 3384, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3357, + StartPos: 3356, EndPos: 3364, }, Trait: &name.Name{ Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3357, + StartPos: 3356, EndPos: 3359, }, Parts: []node.Node{ @@ -7264,7 +7265,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3357, + StartPos: 3356, EndPos: 3359, }, Value: "Bar", @@ -7275,7 +7276,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3362, + StartPos: 3361, EndPos: 3364, }, Value: "one", @@ -7286,7 +7287,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3376, + StartPos: 3375, EndPos: 3378, }, Parts: []node.Node{ @@ -7294,7 +7295,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3376, + StartPos: 3375, EndPos: 3378, }, Value: "Baz", @@ -7305,7 +7306,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3381, + StartPos: 3380, EndPos: 3384, }, Parts: []node.Node{ @@ -7313,7 +7314,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3381, + StartPos: 3380, EndPos: 3384, }, Value: "Quux", @@ -7326,21 +7327,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3387, + StartPos: 3386, EndPos: 3401, }, Ref: &stmt.TraitMethodRef{ Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3387, + StartPos: 3386, EndPos: 3394, }, Trait: &name.Name{ Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3387, + StartPos: 3386, EndPos: 3389, }, Parts: []node.Node{ @@ -7348,7 +7349,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3387, + StartPos: 3386, EndPos: 3389, }, Value: "Baz", @@ -7359,7 +7360,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3392, + StartPos: 3391, EndPos: 3394, }, Value: "one", @@ -7369,7 +7370,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3399, + StartPos: 3398, EndPos: 3401, }, Value: "two", @@ -7384,7 +7385,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 153, EndLine: -1, - StartPos: 3411, + StartPos: 3410, EndPos: -1, }, Stmts: []node.Node{}, @@ -7394,7 +7395,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3420, + StartPos: 3419, EndPos: 3449, }, Stmts: []node.Node{}, @@ -7403,7 +7404,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3427, + StartPos: 3426, EndPos: 3449, }, Types: []node.Node{ @@ -7411,7 +7412,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3434, + StartPos: 3433, EndPos: 3442, }, Parts: []node.Node{ @@ -7419,7 +7420,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3434, + StartPos: 3433, EndPos: 3442, }, Value: "Exception", @@ -7431,14 +7432,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3444, + StartPos: 3443, EndPos: 3445, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3444, + StartPos: 3443, EndPos: 3445, }, Value: "e", @@ -7452,7 +7453,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3453, + StartPos: 3452, EndPos: 3499, }, Stmts: []node.Node{}, @@ -7461,7 +7462,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3460, + StartPos: 3459, EndPos: 3499, }, Types: []node.Node{ @@ -7469,7 +7470,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3467, + StartPos: 3466, EndPos: 3475, }, Parts: []node.Node{ @@ -7477,7 +7478,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3467, + StartPos: 3466, EndPos: 3475, }, Value: "Exception", @@ -7488,7 +7489,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3477, + StartPos: 3476, EndPos: 3492, }, Parts: []node.Node{ @@ -7496,7 +7497,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3477, + StartPos: 3476, EndPos: 3492, }, Value: "RuntimeException", @@ -7508,14 +7509,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3494, + StartPos: 3493, EndPos: 3495, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3494, + StartPos: 3493, EndPos: 3495, }, Value: "e", @@ -7529,7 +7530,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3503, + StartPos: 3502, EndPos: 3563, }, Stmts: []node.Node{}, @@ -7538,7 +7539,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3510, + StartPos: 3509, EndPos: 3532, }, Types: []node.Node{ @@ -7546,7 +7547,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3517, + StartPos: 3516, EndPos: 3525, }, Parts: []node.Node{ @@ -7554,7 +7555,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3517, + StartPos: 3516, EndPos: 3525, }, Value: "Exception", @@ -7566,14 +7567,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3527, + StartPos: 3526, EndPos: 3528, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3527, + StartPos: 3526, EndPos: 3528, }, Value: "e", @@ -7585,7 +7586,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3534, + StartPos: 3533, EndPos: 3563, }, Types: []node.Node{ @@ -7593,7 +7594,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3541, + StartPos: 3540, EndPos: 3556, }, Parts: []node.Node{ @@ -7601,7 +7602,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3541, + StartPos: 3540, EndPos: 3556, }, Value: "RuntimeException", @@ -7613,14 +7614,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3558, + StartPos: 3557, EndPos: 3559, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3558, + StartPos: 3557, EndPos: 3559, }, Value: "e", @@ -7634,7 +7635,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3567, + StartPos: 3566, EndPos: 3607, }, Stmts: []node.Node{}, @@ -7643,7 +7644,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3574, + StartPos: 3573, EndPos: 3596, }, Types: []node.Node{ @@ -7651,7 +7652,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3581, + StartPos: 3580, EndPos: 3589, }, Parts: []node.Node{ @@ -7659,7 +7660,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3581, + StartPos: 3580, EndPos: 3589, }, Value: "Exception", @@ -7671,14 +7672,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3591, + StartPos: 3590, EndPos: 3592, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3591, + StartPos: 3590, EndPos: 3592, }, Value: "e", @@ -7691,7 +7692,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3598, + StartPos: 3597, EndPos: 3607, }, Stmts: []node.Node{}, @@ -7701,7 +7702,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3612, + StartPos: 3611, EndPos: 3626, }, Vars: []node.Node{ @@ -7709,14 +7710,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3618, + StartPos: 3617, EndPos: 3619, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3618, + StartPos: 3617, EndPos: 3619, }, Value: "a", @@ -7726,14 +7727,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3622, + StartPos: 3621, EndPos: 3623, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3622, + StartPos: 3621, EndPos: 3623, }, Value: "b", @@ -7745,7 +7746,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3631, + StartPos: 3630, EndPos: 3638, }, Uses: []node.Node{ @@ -7753,14 +7754,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3635, + StartPos: 3634, EndPos: 3637, }, Use: &name.Name{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3635, + StartPos: 3634, EndPos: 3637, }, Parts: []node.Node{ @@ -7768,7 +7769,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3635, + StartPos: 3634, EndPos: 3637, }, Value: "Foo", @@ -7782,7 +7783,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3642, + StartPos: 3641, EndPos: 3650, }, Uses: []node.Node{ @@ -7790,14 +7791,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3647, + StartPos: 3646, EndPos: 3649, }, Use: &name.Name{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3647, + StartPos: 3646, EndPos: 3649, }, Parts: []node.Node{ @@ -7805,7 +7806,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3647, + StartPos: 3646, EndPos: 3649, }, Value: "Foo", @@ -7819,7 +7820,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3654, + StartPos: 3653, EndPos: 3669, }, Uses: []node.Node{ @@ -7827,14 +7828,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3659, + StartPos: 3658, EndPos: 3668, }, Use: &name.Name{ Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3659, + StartPos: 3658, EndPos: 3661, }, Parts: []node.Node{ @@ -7842,7 +7843,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3659, + StartPos: 3658, EndPos: 3661, }, Value: "Foo", @@ -7853,7 +7854,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3666, + StartPos: 3665, EndPos: 3668, }, Value: "Bar", @@ -7865,7 +7866,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3673, + StartPos: 3672, EndPos: 3685, }, Uses: []node.Node{ @@ -7873,14 +7874,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3677, + StartPos: 3676, EndPos: 3679, }, Use: &name.Name{ Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3677, + StartPos: 3676, EndPos: 3679, }, Parts: []node.Node{ @@ -7888,7 +7889,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3677, + StartPos: 3676, EndPos: 3679, }, Value: "Foo", @@ -7900,14 +7901,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3682, + StartPos: 3681, EndPos: 3684, }, Use: &name.Name{ Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3682, + StartPos: 3681, EndPos: 3684, }, Parts: []node.Node{ @@ -7915,7 +7916,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3682, + StartPos: 3681, EndPos: 3684, }, Value: "Bar", @@ -7929,7 +7930,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3689, + StartPos: 3688, EndPos: 3708, }, Uses: []node.Node{ @@ -7937,14 +7938,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3693, + StartPos: 3692, EndPos: 3695, }, Use: &name.Name{ Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3693, + StartPos: 3692, EndPos: 3695, }, Parts: []node.Node{ @@ -7952,7 +7953,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3693, + StartPos: 3692, EndPos: 3695, }, Value: "Foo", @@ -7964,14 +7965,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3698, + StartPos: 3697, EndPos: 3707, }, Use: &name.Name{ Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3698, + StartPos: 3697, EndPos: 3700, }, Parts: []node.Node{ @@ -7979,7 +7980,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3698, + StartPos: 3697, EndPos: 3700, }, Value: "Bar", @@ -7990,7 +7991,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3705, + StartPos: 3704, EndPos: 3707, }, Value: "Baz", @@ -8002,14 +8003,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3712, + StartPos: 3711, EndPos: 3734, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3716, + StartPos: 3715, EndPos: 3723, }, Value: "function", @@ -8019,14 +8020,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3725, + StartPos: 3724, EndPos: 3727, }, Use: &name.Name{ Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3725, + StartPos: 3724, EndPos: 3727, }, Parts: []node.Node{ @@ -8034,7 +8035,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3725, + StartPos: 3724, EndPos: 3727, }, Value: "Foo", @@ -8046,14 +8047,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3731, + StartPos: 3730, EndPos: 3733, }, Use: &name.Name{ Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3731, + StartPos: 3730, EndPos: 3733, }, Parts: []node.Node{ @@ -8061,7 +8062,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3731, + StartPos: 3730, EndPos: 3733, }, Value: "Bar", @@ -8075,14 +8076,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3738, + StartPos: 3737, EndPos: 3774, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3742, + StartPos: 3741, EndPos: 3749, }, Value: "function", @@ -8092,14 +8093,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3751, + StartPos: 3750, EndPos: 3760, }, Use: &name.Name{ Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3751, + StartPos: 3750, EndPos: 3753, }, Parts: []node.Node{ @@ -8107,7 +8108,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3751, + StartPos: 3750, EndPos: 3753, }, Value: "Foo", @@ -8118,7 +8119,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3758, + StartPos: 3757, EndPos: 3760, }, Value: "foo", @@ -8128,14 +8129,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3764, + StartPos: 3763, EndPos: 3773, }, Use: &name.Name{ Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3764, + StartPos: 3763, EndPos: 3766, }, Parts: []node.Node{ @@ -8143,7 +8144,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3764, + StartPos: 3763, EndPos: 3766, }, Value: "Bar", @@ -8154,7 +8155,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3771, + StartPos: 3770, EndPos: 3773, }, Value: "bar", @@ -8166,14 +8167,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3778, + StartPos: 3777, EndPos: 3797, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3782, + StartPos: 3781, EndPos: 3786, }, Value: "const", @@ -8183,14 +8184,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3788, + StartPos: 3787, EndPos: 3790, }, Use: &name.Name{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3788, + StartPos: 3787, EndPos: 3790, }, Parts: []node.Node{ @@ -8198,7 +8199,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3788, + StartPos: 3787, EndPos: 3790, }, Value: "Foo", @@ -8210,14 +8211,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3794, + StartPos: 3793, EndPos: 3796, }, Use: &name.Name{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3794, + StartPos: 3793, EndPos: 3796, }, Parts: []node.Node{ @@ -8225,7 +8226,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3794, + StartPos: 3793, EndPos: 3796, }, Value: "Bar", @@ -8239,14 +8240,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3801, + StartPos: 3800, EndPos: 3834, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3805, + StartPos: 3804, EndPos: 3809, }, Value: "const", @@ -8256,14 +8257,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3811, + StartPos: 3810, EndPos: 3820, }, Use: &name.Name{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3811, + StartPos: 3810, EndPos: 3813, }, Parts: []node.Node{ @@ -8271,7 +8272,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3811, + StartPos: 3810, EndPos: 3813, }, Value: "Foo", @@ -8282,7 +8283,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3818, + StartPos: 3817, EndPos: 3820, }, Value: "foo", @@ -8292,14 +8293,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3824, + StartPos: 3823, EndPos: 3833, }, Use: &name.Name{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3824, + StartPos: 3823, EndPos: 3826, }, Parts: []node.Node{ @@ -8307,7 +8308,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3824, + StartPos: 3823, EndPos: 3826, }, Value: "Bar", @@ -8318,7 +8319,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3831, + StartPos: 3830, EndPos: 3833, }, Value: "bar", @@ -8330,14 +8331,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3839, + StartPos: 3838, EndPos: 3858, }, Prefix: &name.Name{ Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3844, + StartPos: 3843, EndPos: 3846, }, Parts: []node.Node{ @@ -8345,7 +8346,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3844, + StartPos: 3843, EndPos: 3846, }, Value: "Foo", @@ -8357,14 +8358,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3849, + StartPos: 3848, EndPos: 3851, }, Use: &name.Name{ Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3849, + StartPos: 3848, EndPos: 3851, }, Parts: []node.Node{ @@ -8372,7 +8373,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3849, + StartPos: 3848, EndPos: 3851, }, Value: "Bar", @@ -8384,14 +8385,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3854, + StartPos: 3853, EndPos: 3856, }, Use: &name.Name{ Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3854, + StartPos: 3853, EndPos: 3856, }, Parts: []node.Node{ @@ -8399,7 +8400,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3854, + StartPos: 3853, EndPos: 3856, }, Value: "Baz", @@ -8413,14 +8414,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3862, + StartPos: 3861, EndPos: 3888, }, Prefix: &name.Name{ Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3866, + StartPos: 3865, EndPos: 3868, }, Parts: []node.Node{ @@ -8428,7 +8429,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3866, + StartPos: 3865, EndPos: 3868, }, Value: "Foo", @@ -8440,14 +8441,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3871, + StartPos: 3870, EndPos: 3873, }, Use: &name.Name{ Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3871, + StartPos: 3870, EndPos: 3873, }, Parts: []node.Node{ @@ -8455,7 +8456,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3871, + StartPos: 3870, EndPos: 3873, }, Value: "Bar", @@ -8467,14 +8468,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3876, + StartPos: 3875, EndPos: 3886, }, Use: &name.Name{ Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3876, + StartPos: 3875, EndPos: 3878, }, Parts: []node.Node{ @@ -8482,7 +8483,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3876, + StartPos: 3875, EndPos: 3878, }, Value: "Baz", @@ -8493,7 +8494,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3883, + StartPos: 3882, EndPos: 3886, }, Value: "quux", @@ -8505,14 +8506,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3892, + StartPos: 3891, EndPos: 3919, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3896, + StartPos: 3895, EndPos: 3903, }, Value: "function", @@ -8521,7 +8522,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3905, + StartPos: 3904, EndPos: 3907, }, Parts: []node.Node{ @@ -8529,7 +8530,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3905, + StartPos: 3904, EndPos: 3907, }, Value: "Foo", @@ -8541,14 +8542,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3910, + StartPos: 3909, EndPos: 3912, }, Use: &name.Name{ Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3910, + StartPos: 3909, EndPos: 3912, }, Parts: []node.Node{ @@ -8556,7 +8557,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3910, + StartPos: 3909, EndPos: 3912, }, Value: "Bar", @@ -8568,14 +8569,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3915, + StartPos: 3914, EndPos: 3917, }, Use: &name.Name{ Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3915, + StartPos: 3914, EndPos: 3917, }, Parts: []node.Node{ @@ -8583,7 +8584,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3915, + StartPos: 3914, EndPos: 3917, }, Value: "Baz", @@ -8597,14 +8598,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3923, + StartPos: 3922, EndPos: 3948, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3927, + StartPos: 3926, EndPos: 3931, }, Value: "const", @@ -8613,7 +8614,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3934, + StartPos: 3933, EndPos: 3936, }, Parts: []node.Node{ @@ -8621,7 +8622,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3934, + StartPos: 3933, EndPos: 3936, }, Value: "Foo", @@ -8633,14 +8634,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3939, + StartPos: 3938, EndPos: 3941, }, Use: &name.Name{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3939, + StartPos: 3938, EndPos: 3941, }, Parts: []node.Node{ @@ -8648,7 +8649,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3939, + StartPos: 3938, EndPos: 3941, }, Value: "Bar", @@ -8660,14 +8661,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3944, + StartPos: 3943, EndPos: 3946, }, Use: &name.Name{ Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3944, + StartPos: 3943, EndPos: 3946, }, Parts: []node.Node{ @@ -8675,7 +8676,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3944, + StartPos: 3943, EndPos: 3946, }, Value: "Baz", @@ -8689,14 +8690,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3952, + StartPos: 3951, EndPos: 3985, }, Prefix: &name.Name{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3956, + StartPos: 3955, EndPos: 3958, }, Parts: []node.Node{ @@ -8704,7 +8705,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3956, + StartPos: 3955, EndPos: 3958, }, Value: "Foo", @@ -8716,14 +8717,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3967, + StartPos: 3966, EndPos: 3969, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3961, + StartPos: 3960, EndPos: 3965, }, Value: "const", @@ -8732,7 +8733,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3967, + StartPos: 3966, EndPos: 3969, }, Parts: []node.Node{ @@ -8740,7 +8741,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3967, + StartPos: 3966, EndPos: 3969, }, Value: "Bar", @@ -8752,14 +8753,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3981, + StartPos: 3980, EndPos: 3983, }, UseType: &node.Identifier{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3972, + StartPos: 3971, EndPos: 3979, }, Value: "function", @@ -8768,7 +8769,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3981, + StartPos: 3980, EndPos: 3983, }, Parts: []node.Node{ @@ -8776,7 +8777,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3981, + StartPos: 3980, EndPos: 3983, }, Value: "Baz", @@ -8790,28 +8791,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3990, + StartPos: 3989, EndPos: 3995, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3990, + StartPos: 3989, EndPos: 3994, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3990, + StartPos: 3989, EndPos: 3991, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3990, + StartPos: 3989, EndPos: 3991, }, Value: "a", @@ -8821,7 +8822,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3993, + StartPos: 3992, EndPos: 3993, }, Value: "1", @@ -8832,35 +8833,35 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3999, + StartPos: 3998, EndPos: 4007, }, Expr: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3999, + StartPos: 3998, EndPos: 4006, }, Variable: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3999, + StartPos: 3998, EndPos: 4003, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3999, + StartPos: 3998, EndPos: 4000, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3999, + StartPos: 3998, EndPos: 4000, }, Value: "a", @@ -8870,7 +8871,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 4002, + StartPos: 4001, EndPos: 4002, }, Value: "1", @@ -8880,7 +8881,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 4005, + StartPos: 4004, EndPos: 4005, }, Value: "2", @@ -8891,14 +8892,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 4011, + StartPos: 4010, EndPos: 4018, }, Expr: &expr.Array{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 4011, + StartPos: 4010, EndPos: 4017, }, Items: []node.Node{}, @@ -8908,14 +8909,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 4022, + StartPos: 4021, EndPos: 4030, }, Expr: &expr.Array{ Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 4022, + StartPos: 4021, EndPos: 4029, }, Items: []node.Node{ @@ -8923,14 +8924,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 4028, + StartPos: 4027, EndPos: 4028, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 4028, + StartPos: 4027, EndPos: 4028, }, Value: "1", @@ -8943,14 +8944,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4034, + StartPos: 4033, EndPos: 4051, }, Expr: &expr.Array{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4034, + StartPos: 4033, EndPos: 4050, }, Items: []node.Node{ @@ -8958,14 +8959,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4040, + StartPos: 4039, EndPos: 4043, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4040, + StartPos: 4039, EndPos: 4040, }, Value: "1", @@ -8974,7 +8975,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4043, + StartPos: 4042, EndPos: 4043, }, Value: "1", @@ -8984,28 +8985,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4046, + StartPos: 4045, EndPos: 4048, }, Val: &expr.Reference{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4046, + StartPos: 4045, EndPos: 4048, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4047, + StartPos: 4046, EndPos: 4048, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4047, + StartPos: 4046, EndPos: 4048, }, Value: "b", @@ -9021,28 +9022,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4055, + StartPos: 4054, EndPos: 4058, }, Expr: &expr.BitwiseNot{ Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4055, + StartPos: 4054, EndPos: 4057, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4056, + StartPos: 4055, EndPos: 4057, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4056, + StartPos: 4055, EndPos: 4057, }, Value: "a", @@ -9054,28 +9055,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4062, + StartPos: 4061, EndPos: 4065, }, Expr: &expr.BooleanNot{ Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4062, + StartPos: 4061, EndPos: 4064, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4063, + StartPos: 4062, EndPos: 4064, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4063, + StartPos: 4062, EndPos: 4064, }, Value: "a", @@ -9087,21 +9088,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4070, + StartPos: 4069, EndPos: 4078, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4070, + StartPos: 4069, EndPos: 4077, }, Class: &name.Name{ Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4070, + StartPos: 4069, EndPos: 4072, }, Parts: []node.Node{ @@ -9109,7 +9110,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4070, + StartPos: 4069, EndPos: 4072, }, Value: "Foo", @@ -9120,7 +9121,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4075, + StartPos: 4074, EndPos: 4077, }, Value: "Bar", @@ -9131,28 +9132,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4082, + StartPos: 4081, EndPos: 4091, }, Expr: &expr.ClassConstFetch{ Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4082, + StartPos: 4081, EndPos: 4090, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4082, + StartPos: 4081, EndPos: 4085, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4082, + StartPos: 4081, EndPos: 4085, }, Value: "foo", @@ -9162,7 +9163,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4088, + StartPos: 4087, EndPos: 4090, }, Value: "Bar", @@ -9173,28 +9174,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4095, + StartPos: 4094, EndPos: 4104, }, Expr: &expr.Clone{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4095, + StartPos: 4094, EndPos: 4102, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4101, + StartPos: 4100, EndPos: 4102, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4101, + StartPos: 4100, EndPos: 4102, }, Value: "a", @@ -9206,28 +9207,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4108, + StartPos: 4107, EndPos: 4116, }, Expr: &expr.Clone{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4108, + StartPos: 4107, EndPos: 4115, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4114, + StartPos: 4113, EndPos: 4115, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4114, + StartPos: 4113, EndPos: 4115, }, Value: "a", @@ -9239,19 +9240,19 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 189, EndLine: 189, - StartPos: 4120, + StartPos: 4119, EndPos: 4132, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 189, EndLine: 189, - StartPos: 4120, + StartPos: 4119, EndPos: 4131, }, - PhpDocComment: "", ReturnsRef: false, Static: false, + PhpDocComment: "", Stmts: []node.Node{}, }, }, @@ -9259,25 +9260,25 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4136, + StartPos: 4135, EndPos: 4169, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4136, + StartPos: 4135, EndPos: 4168, }, - ReturnsRef: false, Static: false, PhpDocComment: "", + ReturnsRef: false, Params: []node.Node{ &node.Parameter{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4145, + StartPos: 4144, EndPos: 4146, }, ByRef: false, @@ -9286,14 +9287,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4145, + StartPos: 4144, EndPos: 4146, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4145, + StartPos: 4144, EndPos: 4146, }, Value: "a", @@ -9304,7 +9305,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4149, + StartPos: 4148, EndPos: 4150, }, ByRef: false, @@ -9313,14 +9314,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4149, + StartPos: 4148, EndPos: 4150, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4149, + StartPos: 4148, EndPos: 4150, }, Value: "b", @@ -9332,7 +9333,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4153, + StartPos: 4152, EndPos: 4165, }, Uses: []node.Node{ @@ -9340,14 +9341,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4158, + StartPos: 4157, EndPos: 4159, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4158, + StartPos: 4157, EndPos: 4159, }, Value: "c", @@ -9357,21 +9358,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4162, + StartPos: 4161, EndPos: 4164, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4163, + StartPos: 4162, EndPos: 4164, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4163, + StartPos: 4162, EndPos: 4164, }, Value: "d", @@ -9387,14 +9388,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4173, + StartPos: 4172, EndPos: 4192, }, Expr: &expr.Closure{ Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4173, + StartPos: 4172, EndPos: 4191, }, ReturnsRef: false, @@ -9404,7 +9405,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4185, + StartPos: 4184, EndPos: 4188, }, Parts: []node.Node{ @@ -9412,7 +9413,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4185, + StartPos: 4184, EndPos: 4188, }, Value: "void", @@ -9426,21 +9427,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4196, + StartPos: 4195, EndPos: 4199, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4196, + StartPos: 4195, EndPos: 4198, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4196, + StartPos: 4195, EndPos: 4198, }, Parts: []node.Node{ @@ -9448,7 +9449,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4196, + StartPos: 4195, EndPos: 4198, }, Value: "foo", @@ -9461,21 +9462,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4203, + StartPos: 4202, EndPos: 4216, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4203, + StartPos: 4202, EndPos: 4215, }, Constant: &name.Relative{ Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4203, + StartPos: 4202, EndPos: 4215, }, Parts: []node.Node{ @@ -9483,7 +9484,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4213, + StartPos: 4212, EndPos: 4215, }, Value: "foo", @@ -9496,21 +9497,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4220, + StartPos: 4219, EndPos: 4224, }, Expr: &expr.ConstFetch{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4220, + StartPos: 4219, EndPos: 4223, }, Constant: &name.FullyQualified{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4220, + StartPos: 4219, EndPos: 4223, }, Parts: []node.Node{ @@ -9518,7 +9519,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4221, + StartPos: 4220, EndPos: 4223, }, Value: "foo", @@ -9531,28 +9532,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4229, + StartPos: 4228, EndPos: 4238, }, Expr: &expr.Empty{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4229, + StartPos: 4228, EndPos: 4237, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4235, + StartPos: 4234, EndPos: 4236, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4235, + StartPos: 4234, EndPos: 4236, }, Value: "a", @@ -9564,28 +9565,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4242, + StartPos: 4241, EndPos: 4245, }, Expr: &expr.ErrorSuppress{ Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4242, + StartPos: 4241, EndPos: 4244, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4243, + StartPos: 4242, EndPos: 4244, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4243, + StartPos: 4242, EndPos: 4244, }, Value: "a", @@ -9597,28 +9598,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4249, + StartPos: 4248, EndPos: 4257, }, Expr: &expr.Eval{ Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4249, + StartPos: 4248, EndPos: 4256, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4254, + StartPos: 4253, EndPos: 4255, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4254, + StartPos: 4253, EndPos: 4255, }, Value: "a", @@ -9630,14 +9631,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4261, + StartPos: 4260, EndPos: 4265, }, Expr: &expr.Exit{ Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4261, + StartPos: 4260, EndPos: 4264, }, Die: false, @@ -9647,14 +9648,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4269, + StartPos: 4268, EndPos: 4277, }, Expr: &expr.Exit{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4269, + StartPos: 4268, EndPos: 4276, }, Die: false, @@ -9662,14 +9663,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4274, + StartPos: 4273, EndPos: 4275, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4274, + StartPos: 4273, EndPos: 4275, }, Value: "a", @@ -9681,14 +9682,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4281, + StartPos: 4280, EndPos: 4284, }, Expr: &expr.Exit{ Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4281, + StartPos: 4280, EndPos: 4283, }, Die: true, @@ -9698,14 +9699,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4288, + StartPos: 4287, EndPos: 4295, }, Expr: &expr.Exit{ Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4288, + StartPos: 4287, EndPos: 4294, }, Die: true, @@ -9713,14 +9714,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4292, + StartPos: 4291, EndPos: 4293, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4292, + StartPos: 4291, EndPos: 4293, }, Value: "a", @@ -9732,21 +9733,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4299, + StartPos: 4298, EndPos: 4304, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4299, + StartPos: 4298, EndPos: 4303, }, Function: &name.Name{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4299, + StartPos: 4298, EndPos: 4301, }, Parts: []node.Node{ @@ -9754,7 +9755,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4299, + StartPos: 4298, EndPos: 4301, }, Value: "foo", @@ -9765,7 +9766,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4302, + StartPos: 4301, EndPos: 4303, }, }, @@ -9775,21 +9776,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4308, + StartPos: 4307, EndPos: 4323, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4308, + StartPos: 4307, EndPos: 4322, }, Function: &name.Relative{ Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4308, + StartPos: 4307, EndPos: 4320, }, Parts: []node.Node{ @@ -9797,7 +9798,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4318, + StartPos: 4317, EndPos: 4320, }, Value: "foo", @@ -9808,7 +9809,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4321, + StartPos: 4320, EndPos: 4322, }, }, @@ -9818,21 +9819,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4327, + StartPos: 4326, EndPos: 4333, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4327, + StartPos: 4326, EndPos: 4332, }, Function: &name.FullyQualified{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4327, + StartPos: 4326, EndPos: 4330, }, Parts: []node.Node{ @@ -9840,7 +9841,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4328, + StartPos: 4327, EndPos: 4330, }, Value: "foo", @@ -9851,7 +9852,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4331, + StartPos: 4330, EndPos: 4332, }, }, @@ -9861,28 +9862,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4337, + StartPos: 4336, EndPos: 4343, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4337, + StartPos: 4336, EndPos: 4342, }, Function: &expr.Variable{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4337, + StartPos: 4336, EndPos: 4340, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4337, + StartPos: 4336, EndPos: 4340, }, Value: "foo", @@ -9892,7 +9893,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4341, + StartPos: 4340, EndPos: 4342, }, }, @@ -9902,28 +9903,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4348, + StartPos: 4347, EndPos: 4352, }, Expr: &expr.PostDec{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4348, + StartPos: 4347, EndPos: 4351, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4348, + StartPos: 4347, EndPos: 4349, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4348, + StartPos: 4347, EndPos: 4349, }, Value: "a", @@ -9935,28 +9936,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4356, + StartPos: 4355, EndPos: 4360, }, Expr: &expr.PostInc{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4356, + StartPos: 4355, EndPos: 4359, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4356, + StartPos: 4355, EndPos: 4357, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4356, + StartPos: 4355, EndPos: 4357, }, Value: "a", @@ -9968,28 +9969,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4364, + StartPos: 4363, EndPos: 4368, }, Expr: &expr.PreDec{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4364, + StartPos: 4363, EndPos: 4367, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4366, + StartPos: 4365, EndPos: 4367, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4366, + StartPos: 4365, EndPos: 4367, }, Value: "a", @@ -10001,28 +10002,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4372, + StartPos: 4371, EndPos: 4376, }, Expr: &expr.PreInc{ Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4372, + StartPos: 4371, EndPos: 4375, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4374, + StartPos: 4373, EndPos: 4375, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4374, + StartPos: 4373, EndPos: 4375, }, Value: "a", @@ -10034,28 +10035,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4381, + StartPos: 4380, EndPos: 4391, }, Expr: &expr.Include{ Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4381, + StartPos: 4380, EndPos: 4390, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4389, + StartPos: 4388, EndPos: 4390, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4389, + StartPos: 4388, EndPos: 4390, }, Value: "a", @@ -10067,28 +10068,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4395, + StartPos: 4394, EndPos: 4410, }, Expr: &expr.IncludeOnce{ Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4395, + StartPos: 4394, EndPos: 4409, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4408, + StartPos: 4407, EndPos: 4409, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4408, + StartPos: 4407, EndPos: 4409, }, Value: "a", @@ -10100,28 +10101,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4414, + StartPos: 4413, EndPos: 4424, }, Expr: &expr.Require{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4414, + StartPos: 4413, EndPos: 4423, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4422, + StartPos: 4421, EndPos: 4423, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4422, + StartPos: 4421, EndPos: 4423, }, Value: "a", @@ -10133,28 +10134,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4428, + StartPos: 4427, EndPos: 4443, }, Expr: &expr.RequireOnce{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4428, + StartPos: 4427, EndPos: 4442, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4441, + StartPos: 4440, EndPos: 4442, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4441, + StartPos: 4440, EndPos: 4442, }, Value: "a", @@ -10166,28 +10167,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4448, + StartPos: 4447, EndPos: 4465, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4448, + StartPos: 4447, EndPos: 4464, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4448, + StartPos: 4447, EndPos: 4449, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4448, + StartPos: 4447, EndPos: 4449, }, Value: "a", @@ -10197,7 +10198,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4462, + StartPos: 4461, EndPos: 4464, }, Parts: []node.Node{ @@ -10205,7 +10206,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4462, + StartPos: 4461, EndPos: 4464, }, Value: "Foo", @@ -10218,28 +10219,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4469, + StartPos: 4468, EndPos: 4496, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4469, + StartPos: 4468, EndPos: 4495, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4469, + StartPos: 4468, EndPos: 4470, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4469, + StartPos: 4468, EndPos: 4470, }, Value: "a", @@ -10249,7 +10250,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4483, + StartPos: 4482, EndPos: 4495, }, Parts: []node.Node{ @@ -10257,7 +10258,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4493, + StartPos: 4492, EndPos: 4495, }, Value: "Foo", @@ -10270,28 +10271,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4500, + StartPos: 4499, EndPos: 4518, }, Expr: &expr.InstanceOf{ Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4500, + StartPos: 4499, EndPos: 4517, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4500, + StartPos: 4499, EndPos: 4501, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4500, + StartPos: 4499, EndPos: 4501, }, Value: "a", @@ -10301,7 +10302,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4514, + StartPos: 4513, EndPos: 4517, }, Parts: []node.Node{ @@ -10309,7 +10310,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4515, + StartPos: 4514, EndPos: 4517, }, Value: "Foo", @@ -10322,14 +10323,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4523, + StartPos: 4522, EndPos: 4536, }, Expr: &expr.Isset{ Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4523, + StartPos: 4522, EndPos: 4535, }, Variables: []node.Node{ @@ -10337,14 +10338,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4529, + StartPos: 4528, EndPos: 4530, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4529, + StartPos: 4528, EndPos: 4530, }, Value: "a", @@ -10354,14 +10355,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4533, + StartPos: 4532, EndPos: 4534, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4533, + StartPos: 4532, EndPos: 4534, }, Value: "b", @@ -10374,21 +10375,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4540, + StartPos: 4539, EndPos: 4553, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4540, + StartPos: 4539, EndPos: 4552, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4540, + StartPos: 4539, EndPos: 4547, }, Items: []node.Node{ @@ -10396,21 +10397,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4545, + StartPos: 4544, EndPos: 4546, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4545, + StartPos: 4544, EndPos: 4546, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4545, + StartPos: 4544, EndPos: 4546, }, Value: "a", @@ -10423,14 +10424,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4551, + StartPos: 4550, EndPos: 4552, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4551, + StartPos: 4550, EndPos: 4552, }, Value: "b", @@ -10442,21 +10443,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4557, + StartPos: 4556, EndPos: 4572, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4557, + StartPos: 4556, EndPos: 4571, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4557, + StartPos: 4556, EndPos: 4566, }, Items: []node.Node{ @@ -10464,28 +10465,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4562, + StartPos: 4561, EndPos: 4565, }, Val: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4562, + StartPos: 4561, EndPos: 4565, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4562, + StartPos: 4561, EndPos: 4563, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4562, + StartPos: 4561, EndPos: 4563, }, Value: "a", @@ -10499,14 +10500,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4570, + StartPos: 4569, EndPos: 4571, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4570, + StartPos: 4569, EndPos: 4571, }, Value: "b", @@ -10518,21 +10519,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4576, + StartPos: 4575, EndPos: 4595, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4576, + StartPos: 4575, EndPos: 4594, }, Variable: &expr.List{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4576, + StartPos: 4575, EndPos: 4589, }, Items: []node.Node{ @@ -10540,14 +10541,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4581, + StartPos: 4580, EndPos: 4588, }, Val: &expr.List{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4581, + StartPos: 4580, EndPos: 4588, }, Items: []node.Node{ @@ -10555,21 +10556,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4586, + StartPos: 4585, EndPos: 4587, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4586, + StartPos: 4585, EndPos: 4587, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4586, + StartPos: 4585, EndPos: 4587, }, Value: "a", @@ -10585,14 +10586,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4593, + StartPos: 4592, EndPos: 4594, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4593, + StartPos: 4592, EndPos: 4594, }, Value: "b", @@ -10604,28 +10605,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4600, + StartPos: 4599, EndPos: 4609, }, Expr: &expr.MethodCall{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4600, + StartPos: 4599, EndPos: 4608, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4600, + StartPos: 4599, EndPos: 4601, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4600, + StartPos: 4599, EndPos: 4601, }, Value: "a", @@ -10635,7 +10636,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4604, + StartPos: 4603, EndPos: 4606, }, Value: "foo", @@ -10644,7 +10645,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4607, + StartPos: 4606, EndPos: 4608, }, }, @@ -10654,21 +10655,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4613, + StartPos: 4612, EndPos: 4622, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4613, + StartPos: 4612, EndPos: 4621, }, Class: &name.Name{ Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4617, + StartPos: 4616, EndPos: 4619, }, Parts: []node.Node{ @@ -10676,7 +10677,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4617, + StartPos: 4616, EndPos: 4619, }, Value: "Foo", @@ -10687,7 +10688,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4620, + StartPos: 4619, EndPos: 4621, }, }, @@ -10697,21 +10698,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4626, + StartPos: 4625, EndPos: 4645, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4626, + StartPos: 4625, EndPos: 4644, }, Class: &name.Relative{ Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4630, + StartPos: 4629, EndPos: 4642, }, Parts: []node.Node{ @@ -10719,7 +10720,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4640, + StartPos: 4639, EndPos: 4642, }, Value: "Foo", @@ -10730,7 +10731,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4643, + StartPos: 4642, EndPos: 4644, }, }, @@ -10740,21 +10741,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4649, + StartPos: 4648, EndPos: 4659, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4649, + StartPos: 4648, EndPos: 4658, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4653, + StartPos: 4652, EndPos: 4656, }, Parts: []node.Node{ @@ -10762,7 +10763,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4654, + StartPos: 4653, EndPos: 4656, }, Value: "Foo", @@ -10773,7 +10774,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4657, + StartPos: 4656, EndPos: 4658, }, }, @@ -10783,21 +10784,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4663, + StartPos: 4662, EndPos: 4687, }, Expr: &expr.New{ Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4663, + StartPos: 4662, EndPos: 4686, }, Class: &stmt.Class{ Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4667, + StartPos: 4666, EndPos: 4686, }, PhpDocComment: "", @@ -10805,7 +10806,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4673, + StartPos: 4672, EndPos: 4683, }, Arguments: []node.Node{ @@ -10813,23 +10814,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4674, + StartPos: 4673, EndPos: 4675, }, - Variadic: false, IsReference: false, + Variadic: false, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4674, + StartPos: 4673, EndPos: 4675, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4674, + StartPos: 4673, EndPos: 4675, }, Value: "a", @@ -10840,7 +10841,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4678, + StartPos: 4677, EndPos: 4682, }, IsReference: false, @@ -10849,14 +10850,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4681, + StartPos: 4680, EndPos: 4682, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4681, + StartPos: 4680, EndPos: 4682, }, Value: "b", @@ -10873,28 +10874,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4691, + StartPos: 4690, EndPos: 4700, }, Expr: &expr.Print{ Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4691, + StartPos: 4690, EndPos: 4698, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4697, + StartPos: 4696, EndPos: 4698, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4697, + StartPos: 4696, EndPos: 4698, }, Value: "a", @@ -10906,28 +10907,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4704, + StartPos: 4703, EndPos: 4711, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4704, + StartPos: 4703, EndPos: 4710, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4704, + StartPos: 4703, EndPos: 4705, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4704, + StartPos: 4703, EndPos: 4705, }, Value: "a", @@ -10937,7 +10938,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4708, + StartPos: 4707, EndPos: 4710, }, Value: "foo", @@ -10948,14 +10949,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4715, + StartPos: 4714, EndPos: 4723, }, Expr: &expr.ShellExec{ Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4715, + StartPos: 4714, EndPos: 4722, }, Parts: []node.Node{ @@ -10963,7 +10964,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4716, + StartPos: 4715, EndPos: 4719, }, Value: "cmd ", @@ -10972,14 +10973,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4720, + StartPos: 4719, EndPos: 4721, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4720, + StartPos: 4719, EndPos: 4721, }, Value: "a", @@ -10992,14 +10993,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4727, + StartPos: 4726, EndPos: 4732, }, Expr: &expr.ShellExec{ Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4727, + StartPos: 4726, EndPos: 4731, }, Parts: []node.Node{ @@ -11007,7 +11008,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4728, + StartPos: 4727, EndPos: 4730, }, Value: "cmd", @@ -11019,14 +11020,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4736, + StartPos: 4735, EndPos: 4738, }, Expr: &expr.ShellExec{ Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4736, + StartPos: 4735, EndPos: 4737, }, Parts: []node.Node{}, @@ -11036,14 +11037,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4742, + StartPos: 4741, EndPos: 4744, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4742, + StartPos: 4741, EndPos: 4743, }, Items: []node.Node{}, @@ -11053,14 +11054,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4748, + StartPos: 4747, EndPos: 4751, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4748, + StartPos: 4747, EndPos: 4750, }, Items: []node.Node{ @@ -11068,14 +11069,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4749, + StartPos: 4748, EndPos: 4749, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4749, + StartPos: 4748, EndPos: 4749, }, Value: "1", @@ -11088,14 +11089,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4755, + StartPos: 4754, EndPos: 4767, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4755, + StartPos: 4754, EndPos: 4766, }, Items: []node.Node{ @@ -11103,14 +11104,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4756, + StartPos: 4755, EndPos: 4759, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4756, + StartPos: 4755, EndPos: 4756, }, Value: "1", @@ -11119,7 +11120,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4759, + StartPos: 4758, EndPos: 4759, }, Value: "1", @@ -11129,28 +11130,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4762, + StartPos: 4761, EndPos: 4764, }, Val: &expr.Reference{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4762, + StartPos: 4761, EndPos: 4764, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4763, + StartPos: 4762, EndPos: 4764, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4763, + StartPos: 4762, EndPos: 4764, }, Value: "b", @@ -11166,21 +11167,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4772, + StartPos: 4771, EndPos: 4781, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4772, + StartPos: 4771, EndPos: 4780, }, Variable: &expr.ShortList{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4772, + StartPos: 4771, EndPos: 4775, }, Items: []node.Node{ @@ -11188,21 +11189,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4773, + StartPos: 4772, EndPos: 4774, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4773, + StartPos: 4772, EndPos: 4774, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4773, + StartPos: 4772, EndPos: 4774, }, Value: "a", @@ -11215,14 +11216,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4779, + StartPos: 4778, EndPos: 4780, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4779, + StartPos: 4778, EndPos: 4780, }, Value: "b", @@ -11234,21 +11235,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4785, + StartPos: 4784, EndPos: 4796, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4785, + StartPos: 4784, EndPos: 4795, }, Variable: &expr.ShortList{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4785, + StartPos: 4784, EndPos: 4790, }, Items: []node.Node{ @@ -11256,28 +11257,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4786, + StartPos: 4785, EndPos: 4789, }, Val: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4786, + StartPos: 4785, EndPos: 4789, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4786, + StartPos: 4785, EndPos: 4787, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4786, + StartPos: 4785, EndPos: 4787, }, Value: "a", @@ -11291,14 +11292,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4794, + StartPos: 4793, EndPos: 4795, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4794, + StartPos: 4793, EndPos: 4795, }, Value: "b", @@ -11310,21 +11311,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4800, + StartPos: 4799, EndPos: 4815, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4800, + StartPos: 4799, EndPos: 4814, }, Variable: &expr.ShortList{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4800, + StartPos: 4799, EndPos: 4809, }, Items: []node.Node{ @@ -11332,14 +11333,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4801, + StartPos: 4800, EndPos: 4808, }, Val: &expr.List{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4801, + StartPos: 4800, EndPos: 4808, }, Items: []node.Node{ @@ -11347,21 +11348,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4806, + StartPos: 4805, EndPos: 4807, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4806, + StartPos: 4805, EndPos: 4807, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4806, + StartPos: 4805, EndPos: 4807, }, Value: "a", @@ -11377,14 +11378,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4813, + StartPos: 4812, EndPos: 4814, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4813, + StartPos: 4812, EndPos: 4814, }, Value: "b", @@ -11396,21 +11397,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4819, + StartPos: 4818, EndPos: 4829, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4819, + StartPos: 4818, EndPos: 4828, }, Class: &name.Name{ Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4819, + StartPos: 4818, EndPos: 4821, }, Parts: []node.Node{ @@ -11418,7 +11419,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4819, + StartPos: 4818, EndPos: 4821, }, Value: "Foo", @@ -11429,7 +11430,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4824, + StartPos: 4823, EndPos: 4826, }, Value: "bar", @@ -11438,7 +11439,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4827, + StartPos: 4826, EndPos: 4828, }, }, @@ -11448,21 +11449,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4833, + StartPos: 4832, EndPos: 4853, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4833, + StartPos: 4832, EndPos: 4852, }, Class: &name.Relative{ Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4833, + StartPos: 4832, EndPos: 4845, }, Parts: []node.Node{ @@ -11470,7 +11471,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4843, + StartPos: 4842, EndPos: 4845, }, Value: "Foo", @@ -11481,7 +11482,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4848, + StartPos: 4847, EndPos: 4850, }, Value: "bar", @@ -11490,7 +11491,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4851, + StartPos: 4850, EndPos: 4852, }, }, @@ -11500,21 +11501,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4857, + StartPos: 4856, EndPos: 4868, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4857, + StartPos: 4856, EndPos: 4867, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4857, + StartPos: 4856, EndPos: 4860, }, Parts: []node.Node{ @@ -11522,7 +11523,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4858, + StartPos: 4857, EndPos: 4860, }, Value: "Foo", @@ -11533,7 +11534,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4863, + StartPos: 4862, EndPos: 4865, }, Value: "bar", @@ -11542,7 +11543,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4866, + StartPos: 4865, EndPos: 4867, }, }, @@ -11552,21 +11553,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4872, + StartPos: 4871, EndPos: 4881, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4872, + StartPos: 4871, EndPos: 4880, }, Class: &name.Name{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4872, + StartPos: 4871, EndPos: 4874, }, Parts: []node.Node{ @@ -11574,7 +11575,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4872, + StartPos: 4871, EndPos: 4874, }, Value: "Foo", @@ -11585,14 +11586,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4877, + StartPos: 4876, EndPos: 4880, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4877, + StartPos: 4876, EndPos: 4880, }, Value: "bar", @@ -11604,28 +11605,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4885, + StartPos: 4884, EndPos: 4895, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4885, + StartPos: 4884, EndPos: 4894, }, Class: &expr.Variable{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4885, + StartPos: 4884, EndPos: 4888, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4885, + StartPos: 4884, EndPos: 4888, }, Value: "foo", @@ -11635,14 +11636,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4891, + StartPos: 4890, EndPos: 4894, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4891, + StartPos: 4890, EndPos: 4894, }, Value: "bar", @@ -11654,21 +11655,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4899, + StartPos: 4898, EndPos: 4918, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4899, + StartPos: 4898, EndPos: 4917, }, Class: &name.Relative{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4899, + StartPos: 4898, EndPos: 4911, }, Parts: []node.Node{ @@ -11676,7 +11677,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4909, + StartPos: 4908, EndPos: 4911, }, Value: "Foo", @@ -11687,14 +11688,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4914, + StartPos: 4913, EndPos: 4917, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4914, + StartPos: 4913, EndPos: 4917, }, Value: "bar", @@ -11706,21 +11707,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4922, + StartPos: 4921, EndPos: 4932, }, Expr: &expr.StaticPropertyFetch{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4922, + StartPos: 4921, EndPos: 4931, }, Class: &name.FullyQualified{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4922, + StartPos: 4921, EndPos: 4925, }, Parts: []node.Node{ @@ -11728,7 +11729,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4923, + StartPos: 4922, EndPos: 4925, }, Value: "Foo", @@ -11739,14 +11740,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4928, + StartPos: 4927, EndPos: 4931, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4928, + StartPos: 4927, EndPos: 4931, }, Value: "bar", @@ -11758,28 +11759,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4936, + StartPos: 4935, EndPos: 4948, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4936, + StartPos: 4935, EndPos: 4947, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4936, + StartPos: 4935, EndPos: 4937, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4936, + StartPos: 4935, EndPos: 4937, }, Value: "a", @@ -11789,14 +11790,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4941, + StartPos: 4940, EndPos: 4942, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4941, + StartPos: 4940, EndPos: 4942, }, Value: "b", @@ -11806,14 +11807,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4946, + StartPos: 4945, EndPos: 4947, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4946, + StartPos: 4945, EndPos: 4947, }, Value: "c", @@ -11825,28 +11826,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4952, + StartPos: 4951, EndPos: 4961, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4952, + StartPos: 4951, EndPos: 4960, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4952, + StartPos: 4951, EndPos: 4953, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4952, + StartPos: 4951, EndPos: 4953, }, Value: "a", @@ -11856,14 +11857,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4959, + StartPos: 4958, EndPos: 4960, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4959, + StartPos: 4958, EndPos: 4960, }, Value: "c", @@ -11875,28 +11876,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4965, + StartPos: 4964, EndPos: 4987, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4965, + StartPos: 4964, EndPos: 4986, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4965, + StartPos: 4964, EndPos: 4966, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4965, + StartPos: 4964, EndPos: 4966, }, Value: "a", @@ -11906,21 +11907,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4970, + StartPos: 4969, EndPos: 4981, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4970, + StartPos: 4969, EndPos: 4971, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4970, + StartPos: 4969, EndPos: 4971, }, Value: "b", @@ -11930,14 +11931,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4975, + StartPos: 4974, EndPos: 4976, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4975, + StartPos: 4974, EndPos: 4976, }, Value: "c", @@ -11947,14 +11948,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4980, + StartPos: 4979, EndPos: 4981, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4980, + StartPos: 4979, EndPos: 4981, }, Value: "d", @@ -11965,14 +11966,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4985, + StartPos: 4984, EndPos: 4986, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4985, + StartPos: 4984, EndPos: 4986, }, Value: "e", @@ -11984,35 +11985,35 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4991, + StartPos: 4990, EndPos: 5013, }, Expr: &expr.Ternary{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4991, + StartPos: 4990, EndPos: 5012, }, Condition: &expr.Ternary{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4991, + StartPos: 4990, EndPos: 5002, }, Condition: &expr.Variable{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4991, + StartPos: 4990, EndPos: 4992, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4991, + StartPos: 4990, EndPos: 4992, }, Value: "a", @@ -12022,14 +12023,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4996, + StartPos: 4995, EndPos: 4997, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4996, + StartPos: 4995, EndPos: 4997, }, Value: "b", @@ -12039,14 +12040,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5001, + StartPos: 5000, EndPos: 5002, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5001, + StartPos: 5000, EndPos: 5002, }, Value: "c", @@ -12057,14 +12058,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5006, + StartPos: 5005, EndPos: 5007, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5006, + StartPos: 5005, EndPos: 5007, }, Value: "d", @@ -12074,14 +12075,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5011, + StartPos: 5010, EndPos: 5012, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5011, + StartPos: 5010, EndPos: 5012, }, Value: "e", @@ -12093,28 +12094,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5017, + StartPos: 5016, EndPos: 5020, }, Expr: &expr.UnaryMinus{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5017, + StartPos: 5016, EndPos: 5019, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5018, + StartPos: 5017, EndPos: 5019, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5018, + StartPos: 5017, EndPos: 5019, }, Value: "a", @@ -12126,28 +12127,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5024, + StartPos: 5023, EndPos: 5027, }, Expr: &expr.UnaryPlus{ Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5024, + StartPos: 5023, EndPos: 5026, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5025, + StartPos: 5024, EndPos: 5026, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5025, + StartPos: 5024, EndPos: 5026, }, Value: "a", @@ -12159,28 +12160,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5031, + StartPos: 5030, EndPos: 5034, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5031, + StartPos: 5030, EndPos: 5033, }, VarName: &expr.Variable{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5032, + StartPos: 5031, EndPos: 5033, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5032, + StartPos: 5031, EndPos: 5033, }, Value: "a", @@ -12192,14 +12193,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5038, + StartPos: 5037, EndPos: 5043, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5038, + StartPos: 5037, EndPos: 5042, }, }, @@ -12208,28 +12209,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5047, + StartPos: 5046, EndPos: 5055, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5047, + StartPos: 5046, EndPos: 5054, }, Value: &expr.Variable{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5053, + StartPos: 5052, EndPos: 5054, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5053, + StartPos: 5052, EndPos: 5054, }, Value: "a", @@ -12241,28 +12242,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5059, + StartPos: 5058, EndPos: 5073, }, Expr: &expr.Yield{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5059, + StartPos: 5058, EndPos: 5072, }, Key: &expr.Variable{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5065, + StartPos: 5064, EndPos: 5066, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5065, + StartPos: 5064, EndPos: 5066, }, Value: "a", @@ -12272,14 +12273,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5071, + StartPos: 5070, EndPos: 5072, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5071, + StartPos: 5070, EndPos: 5072, }, Value: "b", @@ -12291,28 +12292,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5077, + StartPos: 5076, EndPos: 5090, }, Expr: &expr.YieldFrom{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5077, + StartPos: 5076, EndPos: 5089, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5088, + StartPos: 5087, EndPos: 5089, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5088, + StartPos: 5087, EndPos: 5089, }, Value: "a", @@ -12324,28 +12325,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5097, + StartPos: 5096, EndPos: 5106, }, Expr: &cast.Array{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5097, + StartPos: 5096, EndPos: 5105, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5104, + StartPos: 5103, EndPos: 5105, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5104, + StartPos: 5103, EndPos: 5105, }, Value: "a", @@ -12357,28 +12358,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5110, + StartPos: 5109, EndPos: 5121, }, Expr: &cast.Bool{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5110, + StartPos: 5109, EndPos: 5120, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5119, + StartPos: 5118, EndPos: 5120, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5119, + StartPos: 5118, EndPos: 5120, }, Value: "a", @@ -12390,28 +12391,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5125, + StartPos: 5124, EndPos: 5133, }, Expr: &cast.Bool{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5125, + StartPos: 5124, EndPos: 5132, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5131, + StartPos: 5130, EndPos: 5132, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5131, + StartPos: 5130, EndPos: 5132, }, Value: "a", @@ -12423,28 +12424,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5137, + StartPos: 5136, EndPos: 5147, }, Expr: &cast.Double{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5137, + StartPos: 5136, EndPos: 5146, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5145, + StartPos: 5144, EndPos: 5146, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5145, + StartPos: 5144, EndPos: 5146, }, Value: "a", @@ -12456,28 +12457,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5151, + StartPos: 5150, EndPos: 5160, }, Expr: &cast.Double{ Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5151, + StartPos: 5150, EndPos: 5159, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5158, + StartPos: 5157, EndPos: 5159, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5158, + StartPos: 5157, EndPos: 5159, }, Value: "a", @@ -12489,28 +12490,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5164, + StartPos: 5163, EndPos: 5175, }, Expr: &cast.Int{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5164, + StartPos: 5163, EndPos: 5174, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5173, + StartPos: 5172, EndPos: 5174, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5173, + StartPos: 5172, EndPos: 5174, }, Value: "a", @@ -12522,28 +12523,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5179, + StartPos: 5178, EndPos: 5186, }, Expr: &cast.Int{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5179, + StartPos: 5178, EndPos: 5185, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5184, + StartPos: 5183, EndPos: 5185, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5184, + StartPos: 5183, EndPos: 5185, }, Value: "a", @@ -12555,28 +12556,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5190, + StartPos: 5189, EndPos: 5200, }, Expr: &cast.Object{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5190, + StartPos: 5189, EndPos: 5199, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5198, + StartPos: 5197, EndPos: 5199, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5198, + StartPos: 5197, EndPos: 5199, }, Value: "a", @@ -12588,28 +12589,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5204, + StartPos: 5203, EndPos: 5214, }, Expr: &cast.String{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5204, + StartPos: 5203, EndPos: 5213, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5212, + StartPos: 5211, EndPos: 5213, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5212, + StartPos: 5211, EndPos: 5213, }, Value: "a", @@ -12621,28 +12622,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5218, + StartPos: 5217, EndPos: 5227, }, Expr: &cast.Unset{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5218, + StartPos: 5217, EndPos: 5226, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5225, + StartPos: 5224, EndPos: 5226, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5225, + StartPos: 5224, EndPos: 5226, }, Value: "a", @@ -12654,28 +12655,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5232, + StartPos: 5231, EndPos: 5239, }, Expr: &binary.BitwiseAnd{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5232, + StartPos: 5231, EndPos: 5238, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5232, + StartPos: 5231, EndPos: 5233, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5232, + StartPos: 5231, EndPos: 5233, }, Value: "a", @@ -12685,14 +12686,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5237, + StartPos: 5236, EndPos: 5238, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5237, + StartPos: 5236, EndPos: 5238, }, Value: "b", @@ -12704,28 +12705,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5243, + StartPos: 5242, EndPos: 5250, }, Expr: &binary.BitwiseOr{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5243, + StartPos: 5242, EndPos: 5249, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5243, + StartPos: 5242, EndPos: 5244, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5243, + StartPos: 5242, EndPos: 5244, }, Value: "a", @@ -12735,14 +12736,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5248, + StartPos: 5247, EndPos: 5249, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5248, + StartPos: 5247, EndPos: 5249, }, Value: "b", @@ -12754,28 +12755,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5254, + StartPos: 5253, EndPos: 5261, }, Expr: &binary.BitwiseXor{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5254, + StartPos: 5253, EndPos: 5260, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5254, + StartPos: 5253, EndPos: 5255, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5254, + StartPos: 5253, EndPos: 5255, }, Value: "a", @@ -12785,14 +12786,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5259, + StartPos: 5258, EndPos: 5260, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5259, + StartPos: 5258, EndPos: 5260, }, Value: "b", @@ -12804,28 +12805,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5265, + StartPos: 5264, EndPos: 5273, }, Expr: &binary.BooleanAnd{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5265, + StartPos: 5264, EndPos: 5272, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5265, + StartPos: 5264, EndPos: 5266, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5265, + StartPos: 5264, EndPos: 5266, }, Value: "a", @@ -12835,14 +12836,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5271, + StartPos: 5270, EndPos: 5272, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5271, + StartPos: 5270, EndPos: 5272, }, Value: "b", @@ -12854,28 +12855,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5277, + StartPos: 5276, EndPos: 5285, }, Expr: &binary.BooleanOr{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5277, + StartPos: 5276, EndPos: 5284, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5277, + StartPos: 5276, EndPos: 5278, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5277, + StartPos: 5276, EndPos: 5278, }, Value: "a", @@ -12885,14 +12886,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5283, + StartPos: 5282, EndPos: 5284, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5283, + StartPos: 5282, EndPos: 5284, }, Value: "b", @@ -12904,28 +12905,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5289, + StartPos: 5288, EndPos: 5297, }, Expr: &binary.Coalesce{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5289, + StartPos: 5288, EndPos: 5296, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5289, + StartPos: 5288, EndPos: 5290, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5289, + StartPos: 5288, EndPos: 5290, }, Value: "a", @@ -12935,14 +12936,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5295, + StartPos: 5294, EndPos: 5296, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5295, + StartPos: 5294, EndPos: 5296, }, Value: "b", @@ -12954,28 +12955,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5301, + StartPos: 5300, EndPos: 5308, }, Expr: &binary.Concat{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5301, + StartPos: 5300, EndPos: 5307, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5301, + StartPos: 5300, EndPos: 5302, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5301, + StartPos: 5300, EndPos: 5302, }, Value: "a", @@ -12985,14 +12986,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5306, + StartPos: 5305, EndPos: 5307, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5306, + StartPos: 5305, EndPos: 5307, }, Value: "b", @@ -13004,28 +13005,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5312, + StartPos: 5311, EndPos: 5319, }, Expr: &binary.Div{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5312, + StartPos: 5311, EndPos: 5318, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5312, + StartPos: 5311, EndPos: 5313, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5312, + StartPos: 5311, EndPos: 5313, }, Value: "a", @@ -13035,14 +13036,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5317, + StartPos: 5316, EndPos: 5318, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5317, + StartPos: 5316, EndPos: 5318, }, Value: "b", @@ -13054,28 +13055,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5323, + StartPos: 5322, EndPos: 5331, }, Expr: &binary.Equal{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5323, + StartPos: 5322, EndPos: 5330, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5323, + StartPos: 5322, EndPos: 5324, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5323, + StartPos: 5322, EndPos: 5324, }, Value: "a", @@ -13085,14 +13086,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5329, + StartPos: 5328, EndPos: 5330, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5329, + StartPos: 5328, EndPos: 5330, }, Value: "b", @@ -13104,28 +13105,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5335, + StartPos: 5334, EndPos: 5343, }, Expr: &binary.GreaterOrEqual{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5335, + StartPos: 5334, EndPos: 5342, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5335, + StartPos: 5334, EndPos: 5336, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5335, + StartPos: 5334, EndPos: 5336, }, Value: "a", @@ -13135,14 +13136,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5341, + StartPos: 5340, EndPos: 5342, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5341, + StartPos: 5340, EndPos: 5342, }, Value: "b", @@ -13154,28 +13155,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5347, + StartPos: 5346, EndPos: 5354, }, Expr: &binary.Greater{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5347, + StartPos: 5346, EndPos: 5353, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5347, + StartPos: 5346, EndPos: 5348, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5347, + StartPos: 5346, EndPos: 5348, }, Value: "a", @@ -13185,14 +13186,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5352, + StartPos: 5351, EndPos: 5353, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5352, + StartPos: 5351, EndPos: 5353, }, Value: "b", @@ -13204,28 +13205,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5358, + StartPos: 5357, EndPos: 5367, }, Expr: &binary.Identical{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5358, + StartPos: 5357, EndPos: 5366, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5358, + StartPos: 5357, EndPos: 5359, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5358, + StartPos: 5357, EndPos: 5359, }, Value: "a", @@ -13235,14 +13236,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5365, + StartPos: 5364, EndPos: 5366, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5365, + StartPos: 5364, EndPos: 5366, }, Value: "b", @@ -13254,28 +13255,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5371, + StartPos: 5370, EndPos: 5380, }, Expr: &binary.LogicalAnd{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5371, + StartPos: 5370, EndPos: 5379, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5371, + StartPos: 5370, EndPos: 5372, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5371, + StartPos: 5370, EndPos: 5372, }, Value: "a", @@ -13285,14 +13286,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5378, + StartPos: 5377, EndPos: 5379, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5378, + StartPos: 5377, EndPos: 5379, }, Value: "b", @@ -13304,28 +13305,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5384, + StartPos: 5383, EndPos: 5392, }, Expr: &binary.LogicalOr{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5384, + StartPos: 5383, EndPos: 5391, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5384, + StartPos: 5383, EndPos: 5385, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5384, + StartPos: 5383, EndPos: 5385, }, Value: "a", @@ -13335,14 +13336,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5390, + StartPos: 5389, EndPos: 5391, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5390, + StartPos: 5389, EndPos: 5391, }, Value: "b", @@ -13354,28 +13355,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5396, + StartPos: 5395, EndPos: 5405, }, Expr: &binary.LogicalXor{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5396, + StartPos: 5395, EndPos: 5404, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5396, + StartPos: 5395, EndPos: 5397, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5396, + StartPos: 5395, EndPos: 5397, }, Value: "a", @@ -13385,14 +13386,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5403, + StartPos: 5402, EndPos: 5404, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5403, + StartPos: 5402, EndPos: 5404, }, Value: "b", @@ -13404,28 +13405,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5409, + StartPos: 5408, EndPos: 5416, }, Expr: &binary.Minus{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5409, + StartPos: 5408, EndPos: 5415, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5409, + StartPos: 5408, EndPos: 5410, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5409, + StartPos: 5408, EndPos: 5410, }, Value: "a", @@ -13435,14 +13436,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5414, + StartPos: 5413, EndPos: 5415, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5414, + StartPos: 5413, EndPos: 5415, }, Value: "b", @@ -13454,28 +13455,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5420, + StartPos: 5419, EndPos: 5427, }, Expr: &binary.Mod{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5420, + StartPos: 5419, EndPos: 5426, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5420, + StartPos: 5419, EndPos: 5421, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5420, + StartPos: 5419, EndPos: 5421, }, Value: "a", @@ -13485,14 +13486,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5425, + StartPos: 5424, EndPos: 5426, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5425, + StartPos: 5424, EndPos: 5426, }, Value: "b", @@ -13504,28 +13505,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5431, + StartPos: 5430, EndPos: 5438, }, Expr: &binary.Mul{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5431, + StartPos: 5430, EndPos: 5437, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5431, + StartPos: 5430, EndPos: 5432, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5431, + StartPos: 5430, EndPos: 5432, }, Value: "a", @@ -13535,14 +13536,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5436, + StartPos: 5435, EndPos: 5437, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5436, + StartPos: 5435, EndPos: 5437, }, Value: "b", @@ -13554,28 +13555,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5442, + StartPos: 5441, EndPos: 5450, }, Expr: &binary.NotEqual{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5442, + StartPos: 5441, EndPos: 5449, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5442, + StartPos: 5441, EndPos: 5443, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5442, + StartPos: 5441, EndPos: 5443, }, Value: "a", @@ -13585,14 +13586,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5448, + StartPos: 5447, EndPos: 5449, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5448, + StartPos: 5447, EndPos: 5449, }, Value: "b", @@ -13604,28 +13605,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5454, + StartPos: 5453, EndPos: 5463, }, Expr: &binary.NotIdentical{ Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5454, + StartPos: 5453, EndPos: 5462, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5454, + StartPos: 5453, EndPos: 5455, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5454, + StartPos: 5453, EndPos: 5455, }, Value: "a", @@ -13635,14 +13636,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5461, + StartPos: 5460, EndPos: 5462, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5461, + StartPos: 5460, EndPos: 5462, }, Value: "b", @@ -13654,28 +13655,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5467, + StartPos: 5466, EndPos: 5474, }, Expr: &binary.Plus{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5467, + StartPos: 5466, EndPos: 5473, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5467, + StartPos: 5466, EndPos: 5468, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5467, + StartPos: 5466, EndPos: 5468, }, Value: "a", @@ -13685,14 +13686,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5472, + StartPos: 5471, EndPos: 5473, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5472, + StartPos: 5471, EndPos: 5473, }, Value: "b", @@ -13704,28 +13705,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5478, + StartPos: 5477, EndPos: 5486, }, Expr: &binary.Pow{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5478, + StartPos: 5477, EndPos: 5485, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5478, + StartPos: 5477, EndPos: 5479, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5478, + StartPos: 5477, EndPos: 5479, }, Value: "a", @@ -13735,14 +13736,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5484, + StartPos: 5483, EndPos: 5485, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5484, + StartPos: 5483, EndPos: 5485, }, Value: "b", @@ -13754,28 +13755,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5490, + StartPos: 5489, EndPos: 5498, }, Expr: &binary.ShiftLeft{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5490, + StartPos: 5489, EndPos: 5497, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5490, + StartPos: 5489, EndPos: 5491, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5490, + StartPos: 5489, EndPos: 5491, }, Value: "a", @@ -13785,14 +13786,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5496, + StartPos: 5495, EndPos: 5497, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5496, + StartPos: 5495, EndPos: 5497, }, Value: "b", @@ -13804,28 +13805,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5502, + StartPos: 5501, EndPos: 5510, }, Expr: &binary.ShiftRight{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5502, + StartPos: 5501, EndPos: 5509, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5502, + StartPos: 5501, EndPos: 5503, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5502, + StartPos: 5501, EndPos: 5503, }, Value: "a", @@ -13835,14 +13836,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5508, + StartPos: 5507, EndPos: 5509, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5508, + StartPos: 5507, EndPos: 5509, }, Value: "b", @@ -13854,28 +13855,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5514, + StartPos: 5513, EndPos: 5522, }, Expr: &binary.SmallerOrEqual{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5514, + StartPos: 5513, EndPos: 5521, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5514, + StartPos: 5513, EndPos: 5515, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5514, + StartPos: 5513, EndPos: 5515, }, Value: "a", @@ -13885,14 +13886,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5520, + StartPos: 5519, EndPos: 5521, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5520, + StartPos: 5519, EndPos: 5521, }, Value: "b", @@ -13904,28 +13905,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5526, + StartPos: 5525, EndPos: 5533, }, Expr: &binary.Smaller{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5526, + StartPos: 5525, EndPos: 5532, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5526, + StartPos: 5525, EndPos: 5527, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5526, + StartPos: 5525, EndPos: 5527, }, Value: "a", @@ -13935,14 +13936,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5531, + StartPos: 5530, EndPos: 5532, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5531, + StartPos: 5530, EndPos: 5532, }, Value: "b", @@ -13954,28 +13955,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5537, + StartPos: 5536, EndPos: 5546, }, Expr: &binary.Spaceship{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5537, + StartPos: 5536, EndPos: 5545, }, Left: &expr.Variable{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5537, + StartPos: 5536, EndPos: 5538, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5537, + StartPos: 5536, EndPos: 5538, }, Value: "a", @@ -13985,14 +13986,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5544, + StartPos: 5543, EndPos: 5545, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5544, + StartPos: 5543, EndPos: 5545, }, Value: "b", @@ -14004,28 +14005,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5551, + StartPos: 5550, EndPos: 5559, }, Expr: &assign.Reference{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5551, + StartPos: 5550, EndPos: 5558, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5551, + StartPos: 5550, EndPos: 5552, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5551, + StartPos: 5550, EndPos: 5552, }, Value: "a", @@ -14035,14 +14036,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5557, + StartPos: 5556, EndPos: 5558, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5557, + StartPos: 5556, EndPos: 5558, }, Value: "b", @@ -14054,28 +14055,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5563, + StartPos: 5562, EndPos: 5570, }, Expr: &assign.Assign{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5563, + StartPos: 5562, EndPos: 5569, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5563, + StartPos: 5562, EndPos: 5564, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5563, + StartPos: 5562, EndPos: 5564, }, Value: "a", @@ -14085,14 +14086,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5568, + StartPos: 5567, EndPos: 5569, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5568, + StartPos: 5567, EndPos: 5569, }, Value: "b", @@ -14104,28 +14105,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5574, + StartPos: 5573, EndPos: 5582, }, Expr: &assign.BitwiseAnd{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5574, + StartPos: 5573, EndPos: 5581, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5574, + StartPos: 5573, EndPos: 5575, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5574, + StartPos: 5573, EndPos: 5575, }, Value: "a", @@ -14135,14 +14136,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5580, + StartPos: 5579, EndPos: 5581, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5580, + StartPos: 5579, EndPos: 5581, }, Value: "b", @@ -14154,28 +14155,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5586, + StartPos: 5585, EndPos: 5594, }, Expr: &assign.BitwiseOr{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5586, + StartPos: 5585, EndPos: 5593, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5586, + StartPos: 5585, EndPos: 5587, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5586, + StartPos: 5585, EndPos: 5587, }, Value: "a", @@ -14185,14 +14186,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5592, + StartPos: 5591, EndPos: 5593, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5592, + StartPos: 5591, EndPos: 5593, }, Value: "b", @@ -14204,28 +14205,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5598, + StartPos: 5597, EndPos: 5606, }, Expr: &assign.BitwiseXor{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5598, + StartPos: 5597, EndPos: 5605, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5598, + StartPos: 5597, EndPos: 5599, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5598, + StartPos: 5597, EndPos: 5599, }, Value: "a", @@ -14235,14 +14236,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5604, + StartPos: 5603, EndPos: 5605, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5604, + StartPos: 5603, EndPos: 5605, }, Value: "b", @@ -14254,28 +14255,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5610, + StartPos: 5609, EndPos: 5618, }, Expr: &assign.Concat{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5610, + StartPos: 5609, EndPos: 5617, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5610, + StartPos: 5609, EndPos: 5611, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5610, + StartPos: 5609, EndPos: 5611, }, Value: "a", @@ -14285,14 +14286,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5616, + StartPos: 5615, EndPos: 5617, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5616, + StartPos: 5615, EndPos: 5617, }, Value: "b", @@ -14304,28 +14305,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5622, + StartPos: 5621, EndPos: 5630, }, Expr: &assign.Div{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5622, + StartPos: 5621, EndPos: 5629, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5622, + StartPos: 5621, EndPos: 5623, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5622, + StartPos: 5621, EndPos: 5623, }, Value: "a", @@ -14335,14 +14336,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5628, + StartPos: 5627, EndPos: 5629, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5628, + StartPos: 5627, EndPos: 5629, }, Value: "b", @@ -14354,28 +14355,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5634, + StartPos: 5633, EndPos: 5642, }, Expr: &assign.Minus{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5634, + StartPos: 5633, EndPos: 5641, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5634, + StartPos: 5633, EndPos: 5635, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5634, + StartPos: 5633, EndPos: 5635, }, Value: "a", @@ -14385,14 +14386,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5640, + StartPos: 5639, EndPos: 5641, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5640, + StartPos: 5639, EndPos: 5641, }, Value: "b", @@ -14404,28 +14405,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5646, + StartPos: 5645, EndPos: 5654, }, Expr: &assign.Mod{ Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5646, + StartPos: 5645, EndPos: 5653, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5646, + StartPos: 5645, EndPos: 5647, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5646, + StartPos: 5645, EndPos: 5647, }, Value: "a", @@ -14435,14 +14436,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5652, + StartPos: 5651, EndPos: 5653, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5652, + StartPos: 5651, EndPos: 5653, }, Value: "b", @@ -14454,28 +14455,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5658, + StartPos: 5657, EndPos: 5666, }, Expr: &assign.Mul{ Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5658, + StartPos: 5657, EndPos: 5665, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5658, + StartPos: 5657, EndPos: 5659, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5658, + StartPos: 5657, EndPos: 5659, }, Value: "a", @@ -14485,14 +14486,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5664, + StartPos: 5663, EndPos: 5665, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5664, + StartPos: 5663, EndPos: 5665, }, Value: "b", @@ -14504,28 +14505,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5670, + StartPos: 5669, EndPos: 5678, }, Expr: &assign.Plus{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5670, + StartPos: 5669, EndPos: 5677, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5670, + StartPos: 5669, EndPos: 5671, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5670, + StartPos: 5669, EndPos: 5671, }, Value: "a", @@ -14535,14 +14536,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5676, + StartPos: 5675, EndPos: 5677, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5676, + StartPos: 5675, EndPos: 5677, }, Value: "b", @@ -14554,28 +14555,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5682, + StartPos: 5681, EndPos: 5691, }, Expr: &assign.Pow{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5682, + StartPos: 5681, EndPos: 5690, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5682, + StartPos: 5681, EndPos: 5683, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5682, + StartPos: 5681, EndPos: 5683, }, Value: "a", @@ -14585,14 +14586,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5689, + StartPos: 5688, EndPos: 5690, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5689, + StartPos: 5688, EndPos: 5690, }, Value: "b", @@ -14604,28 +14605,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5695, + StartPos: 5694, EndPos: 5704, }, Expr: &assign.ShiftLeft{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5695, + StartPos: 5694, EndPos: 5703, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5695, + StartPos: 5694, EndPos: 5696, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5695, + StartPos: 5694, EndPos: 5696, }, Value: "a", @@ -14635,14 +14636,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5702, + StartPos: 5701, EndPos: 5703, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5702, + StartPos: 5701, EndPos: 5703, }, Value: "b", @@ -14654,28 +14655,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5708, + StartPos: 5707, EndPos: 5717, }, Expr: &assign.ShiftRight{ Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5708, + StartPos: 5707, EndPos: 5716, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5708, + StartPos: 5707, EndPos: 5709, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5708, + StartPos: 5707, EndPos: 5709, }, Value: "a", @@ -14685,14 +14686,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5715, + StartPos: 5714, EndPos: 5716, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5715, + StartPos: 5714, EndPos: 5716, }, Value: "b", @@ -14704,7 +14705,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5722, + StartPos: 5721, EndPos: 5760, }, PhpDocComment: "", @@ -14712,7 +14713,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5728, + StartPos: 5727, EndPos: 5730, }, Value: "foo", @@ -14722,7 +14723,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5733, + StartPos: 5732, EndPos: 5758, }, ReturnsRef: false, @@ -14731,7 +14732,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5749, + StartPos: 5748, EndPos: 5753, }, Value: "class", @@ -14741,7 +14742,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5733, + StartPos: 5732, EndPos: 5738, }, Value: "public", @@ -14751,7 +14752,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5757, + StartPos: 5756, EndPos: 5758, }, Stmts: []node.Node{}, @@ -14763,21 +14764,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5764, + StartPos: 5763, EndPos: 5774, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5764, + StartPos: 5763, EndPos: 5773, }, Function: &name.FullyQualified{ Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5764, + StartPos: 5763, EndPos: 5771, }, Parts: []node.Node{ @@ -14785,7 +14786,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5765, + StartPos: 5764, EndPos: 5767, }, Value: "foo", @@ -14794,7 +14795,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5769, + StartPos: 5768, EndPos: 5771, }, Value: "bar", @@ -14805,7 +14806,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5772, + StartPos: 5771, EndPos: 5773, }, }, @@ -14815,16 +14816,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 326, - StartPos: 5779, + StartPos: 5778, EndPos: 5905, }, - ReturnsRef: false, PhpDocComment: "", + ReturnsRef: false, FunctionName: &node.Identifier{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5788, + StartPos: 5787, EndPos: 5790, }, Value: "foo", @@ -14834,7 +14835,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5792, + StartPos: 5791, EndPos: 5794, }, ByRef: true, @@ -14843,14 +14844,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5793, + StartPos: 5792, EndPos: 5794, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5793, + StartPos: 5792, EndPos: 5794, }, Value: "a", @@ -14861,23 +14862,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5797, + StartPos: 5796, EndPos: 5801, }, - Variadic: true, ByRef: false, + Variadic: true, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5800, + StartPos: 5799, EndPos: 5801, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5800, + StartPos: 5799, EndPos: 5801, }, Value: "b", @@ -14886,19 +14887,11 @@ func TestPhp7(t *testing.T) { }, }, Stmts: []node.Node{ - &stmt.HaltCompiler{ - Position: &position.Position{ - StartLine: 321, - EndLine: 321, - StartPos: 5809, - EndPos: 5826, - }, - }, &stmt.Function{ Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5831, + StartPos: 5830, EndPos: 5847, }, ReturnsRef: false, @@ -14907,7 +14900,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5840, + StartPos: 5839, EndPos: 5842, }, Value: "bar", @@ -14918,7 +14911,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5852, + StartPos: 5851, EndPos: 5863, }, PhpDocComment: "", @@ -14926,7 +14919,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5858, + StartPos: 5857, EndPos: 5860, }, Value: "Baz", @@ -14937,7 +14930,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5868, + StartPos: 5867, EndPos: 5879, }, PhpDocComment: "", @@ -14945,7 +14938,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5874, + StartPos: 5873, EndPos: 5877, }, Value: "Quux", @@ -14956,7 +14949,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5884, + StartPos: 5883, EndPos: 5901, }, PhpDocComment: "", @@ -14964,7 +14957,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5894, + StartPos: 5893, EndPos: 5898, }, Value: "Quuux", @@ -14977,7 +14970,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5912, + StartPos: 5911, EndPos: 5954, }, ReturnsRef: false, @@ -14986,7 +14979,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5921, + StartPos: 5920, EndPos: 5923, }, Value: "foo", @@ -14996,7 +14989,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5925, + StartPos: 5924, EndPos: 5931, }, ByRef: true, @@ -15005,14 +14998,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5926, + StartPos: 5925, EndPos: 5927, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5926, + StartPos: 5925, EndPos: 5927, }, Value: "a", @@ -15022,7 +15015,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5931, + StartPos: 5930, EndPos: 5931, }, Value: "1", @@ -15032,7 +15025,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5934, + StartPos: 5933, EndPos: 5942, }, ByRef: false, @@ -15041,14 +15034,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5937, + StartPos: 5936, EndPos: 5938, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5937, + StartPos: 5936, EndPos: 5938, }, Value: "b", @@ -15058,7 +15051,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5942, + StartPos: 5941, EndPos: 5942, }, Value: "1", @@ -15068,23 +15061,23 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5945, + StartPos: 5944, EndPos: 5950, }, - Variadic: false, ByRef: false, + Variadic: false, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5945, + StartPos: 5944, EndPos: 5946, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5945, + StartPos: 5944, EndPos: 5946, }, Value: "c", @@ -15094,7 +15087,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5950, + StartPos: 5949, EndPos: 5950, }, Value: "1", @@ -15107,7 +15100,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5958, + StartPos: 5957, EndPos: 5995, }, PhpDocComment: "", @@ -15116,7 +15109,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5967, + StartPos: 5966, EndPos: 5969, }, Value: "foo", @@ -15126,7 +15119,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5971, + StartPos: 5970, EndPos: 5978, }, ByRef: false, @@ -15135,7 +15128,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5971, + StartPos: 5970, EndPos: 5975, }, Value: "array", @@ -15144,14 +15137,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5977, + StartPos: 5976, EndPos: 5978, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5977, + StartPos: 5976, EndPos: 5978, }, Value: "a", @@ -15162,16 +15155,16 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5981, + StartPos: 5980, EndPos: 5991, }, - ByRef: false, Variadic: false, + ByRef: false, VariableType: &node.Identifier{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5981, + StartPos: 5980, EndPos: 5988, }, Value: "callable", @@ -15180,14 +15173,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5990, + StartPos: 5989, EndPos: 5991, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5990, + StartPos: 5989, EndPos: 5991, }, Value: "b", @@ -15201,7 +15194,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5999, + StartPos: 5998, EndPos: 6100, }, PhpDocComment: "", @@ -15209,7 +15202,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6020, + StartPos: 6019, EndPos: 6022, }, Value: "foo", @@ -15219,7 +15212,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5999, + StartPos: 5998, EndPos: 6006, }, Value: "abstract", @@ -15228,7 +15221,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6008, + StartPos: 6007, EndPos: 6012, }, Value: "final", @@ -15239,7 +15232,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6026, + StartPos: 6025, EndPos: 6066, }, ReturnsRef: false, @@ -15248,7 +15241,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6061, + StartPos: 6060, EndPos: 6063, }, Value: "bar", @@ -15258,7 +15251,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6026, + StartPos: 6025, EndPos: 6033, }, Value: "abstract", @@ -15267,7 +15260,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6035, + StartPos: 6034, EndPos: 6043, }, Value: "protected", @@ -15276,7 +15269,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6045, + StartPos: 6044, EndPos: 6050, }, Value: "static", @@ -15286,7 +15279,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6066, + StartPos: 6065, EndPos: 6066, }, }, @@ -15295,7 +15288,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6068, + StartPos: 6067, EndPos: 6098, }, ReturnsRef: false, @@ -15304,7 +15297,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6091, + StartPos: 6090, EndPos: 6093, }, Value: "baz", @@ -15314,7 +15307,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6068, + StartPos: 6067, EndPos: 6072, }, Value: "final", @@ -15323,7 +15316,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6074, + StartPos: 6073, EndPos: 6080, }, Value: "private", @@ -15333,7 +15326,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6097, + StartPos: 6096, EndPos: 6098, }, Stmts: []node.Node{}, @@ -15345,28 +15338,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6106, + StartPos: 6105, EndPos: 6119, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6106, + StartPos: 6105, EndPos: 6118, }, Variable: &expr.New{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6106, + StartPos: 6105, EndPos: 6112, }, Class: &name.Name{ Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6110, + StartPos: 6109, EndPos: 6112, }, Parts: []node.Node{ @@ -15374,7 +15367,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6110, + StartPos: 6109, EndPos: 6112, }, Value: "Foo", @@ -15386,7 +15379,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6116, + StartPos: 6115, EndPos: 6118, }, Value: "bar", @@ -15397,28 +15390,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6124, + StartPos: 6123, EndPos: 6134, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6124, + StartPos: 6123, EndPos: 6133, }, Function: &expr.New{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6124, + StartPos: 6123, EndPos: 6130, }, Class: &name.Name{ Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6128, + StartPos: 6127, EndPos: 6130, }, Parts: []node.Node{ @@ -15426,7 +15419,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6128, + StartPos: 6127, EndPos: 6130, }, Value: "Foo", @@ -15438,7 +15431,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6132, + StartPos: 6131, EndPos: 6133, }, }, @@ -15448,28 +15441,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6138, + StartPos: 6137, EndPos: 6149, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6138, + StartPos: 6137, EndPos: 6148, }, Function: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6138, + StartPos: 6137, EndPos: 6146, }, Variable: &expr.ShortArray{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6138, + StartPos: 6137, EndPos: 6143, }, Items: []node.Node{ @@ -15477,21 +15470,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6139, + StartPos: 6138, EndPos: 6142, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6139, + StartPos: 6138, EndPos: 6142, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6139, + StartPos: 6138, EndPos: 6142, }, Value: "foo", @@ -15504,7 +15497,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6145, + StartPos: 6144, EndPos: 6145, }, Value: "0", @@ -15514,7 +15507,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6147, + StartPos: 6146, EndPos: 6148, }, }, @@ -15524,35 +15517,35 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6153, + StartPos: 6152, EndPos: 6161, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6153, + StartPos: 6152, EndPos: 6160, }, Function: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6153, + StartPos: 6152, EndPos: 6158, }, Variable: &expr.ConstFetch{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6153, + StartPos: 6152, EndPos: 6155, }, Constant: &name.Name{ Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6153, + StartPos: 6152, EndPos: 6155, }, Parts: []node.Node{ @@ -15560,7 +15553,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6153, + StartPos: 6152, EndPos: 6155, }, Value: "foo", @@ -15572,7 +15565,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6157, + StartPos: 6156, EndPos: 6157, }, Value: "1", @@ -15582,7 +15575,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6159, + StartPos: 6158, EndPos: 6160, }, }, @@ -15592,21 +15585,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6165, + StartPos: 6164, EndPos: 6172, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6165, + StartPos: 6164, EndPos: 6171, }, Function: &scalar.String{ Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6165, + StartPos: 6164, EndPos: 6169, }, Value: "\"foo\"", @@ -15615,7 +15608,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6170, + StartPos: 6169, EndPos: 6171, }, }, @@ -15625,28 +15618,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6176, + StartPos: 6175, EndPos: 6187, }, Expr: &expr.FunctionCall{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6176, + StartPos: 6175, EndPos: 6186, }, Function: &expr.ArrayDimFetch{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6176, + StartPos: 6175, EndPos: 6184, }, Variable: &expr.ShortArray{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6176, + StartPos: 6175, EndPos: 6178, }, Items: []node.Node{ @@ -15654,14 +15647,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6177, + StartPos: 6176, EndPos: 6177, }, Val: &scalar.Lnumber{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6177, + StartPos: 6176, EndPos: 6177, }, Value: "1", @@ -15673,14 +15666,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6180, + StartPos: 6179, EndPos: 6183, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6180, + StartPos: 6179, EndPos: 6183, }, Value: "foo", @@ -15691,7 +15684,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6185, + StartPos: 6184, EndPos: 6186, }, }, @@ -15701,28 +15694,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6191, + StartPos: 6190, EndPos: 6199, }, Expr: &expr.Variable{ Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6191, + StartPos: 6190, EndPos: 6198, }, VarName: &expr.FunctionCall{ Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6193, + StartPos: 6192, EndPos: 6197, }, Function: &name.Name{ Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6193, + StartPos: 6192, EndPos: 6195, }, Parts: []node.Node{ @@ -15730,7 +15723,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6193, + StartPos: 6192, EndPos: 6195, }, Value: "foo", @@ -15741,7 +15734,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6196, + StartPos: 6195, EndPos: 6197, }, }, @@ -15752,21 +15745,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6204, + StartPos: 6203, EndPos: 6215, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6204, + StartPos: 6203, EndPos: 6214, }, Class: &name.Name{ Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6204, + StartPos: 6203, EndPos: 6206, }, Parts: []node.Node{ @@ -15774,7 +15767,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6204, + StartPos: 6203, EndPos: 6206, }, Value: "Foo", @@ -15785,14 +15778,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6209, + StartPos: 6208, EndPos: 6212, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6209, + StartPos: 6208, EndPos: 6212, }, Value: "bar", @@ -15802,7 +15795,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6213, + StartPos: 6212, EndPos: 6214, }, }, @@ -15812,21 +15805,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6219, + StartPos: 6218, EndPos: 6235, }, Expr: &expr.StaticCall{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6219, + StartPos: 6218, EndPos: 6234, }, Class: &name.Name{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6219, + StartPos: 6218, EndPos: 6221, }, Parts: []node.Node{ @@ -15834,7 +15827,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6219, + StartPos: 6218, EndPos: 6221, }, Value: "Foo", @@ -15845,21 +15838,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6225, + StartPos: 6224, EndPos: 6231, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6225, + StartPos: 6224, EndPos: 6228, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6225, + StartPos: 6224, EndPos: 6228, }, Value: "bar", @@ -15869,7 +15862,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6230, + StartPos: 6229, EndPos: 6230, }, Value: "0", @@ -15879,7 +15872,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6233, + StartPos: 6232, EndPos: 6234, }, }, @@ -15889,28 +15882,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6242, + StartPos: 6241, EndPos: 6252, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6242, + StartPos: 6241, EndPos: 6251, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6242, + StartPos: 6241, EndPos: 6245, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6242, + StartPos: 6241, EndPos: 6245, }, Value: "foo", @@ -15920,14 +15913,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6248, + StartPos: 6247, EndPos: 6251, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6248, + StartPos: 6247, EndPos: 6251, }, Value: "bar", @@ -15939,28 +15932,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6256, + StartPos: 6255, EndPos: 6271, }, Expr: &expr.PropertyFetch{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6256, + StartPos: 6255, EndPos: 6269, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6256, + StartPos: 6255, EndPos: 6259, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6256, + StartPos: 6255, EndPos: 6259, }, Value: "foo", @@ -15970,21 +15963,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6263, + StartPos: 6262, EndPos: 6269, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6263, + StartPos: 6262, EndPos: 6266, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6263, + StartPos: 6262, EndPos: 6266, }, Value: "bar", @@ -15994,7 +15987,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6268, + StartPos: 6267, EndPos: 6268, }, Value: "0", @@ -16006,14 +15999,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6276, + StartPos: 6275, EndPos: 6297, }, Expr: &expr.ShortArray{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6276, + StartPos: 6275, EndPos: 6296, }, Items: []node.Node{ @@ -16021,14 +16014,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6277, + StartPos: 6276, EndPos: 6282, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6277, + StartPos: 6276, EndPos: 6277, }, Value: "1", @@ -16037,21 +16030,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6280, + StartPos: 6279, EndPos: 6282, }, Variable: &expr.Variable{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6281, + StartPos: 6280, EndPos: 6282, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6281, + StartPos: 6280, EndPos: 6282, }, Value: "a", @@ -16063,14 +16056,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6285, + StartPos: 6284, EndPos: 6295, }, Key: &scalar.Lnumber{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6285, + StartPos: 6284, EndPos: 6285, }, Value: "2", @@ -16079,7 +16072,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6288, + StartPos: 6287, EndPos: 6295, }, Items: []node.Node{ @@ -16087,21 +16080,21 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6293, + StartPos: 6292, EndPos: 6294, }, Val: &expr.Variable{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6293, + StartPos: 6292, EndPos: 6294, }, VarName: &node.Identifier{ Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6293, + StartPos: 6292, EndPos: 6294, }, Value: "b", @@ -16118,14 +16111,14 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6302, + StartPos: 6301, EndPos: 6319, }, }, }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16148,7 +16141,7 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 10, - StartPos: 6, + StartPos: 5, EndPos: 70, }, Stmts: []node.Node{ @@ -16156,14 +16149,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 12, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, + StartPos: 5, EndPos: 11, }, Value: "\"test\"", @@ -16173,14 +16166,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 16, + StartPos: 15, EndPos: 24, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 16, + StartPos: 15, EndPos: 23, }, Value: "\"\\$test\"", @@ -16190,14 +16183,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 6, - StartPos: 28, + StartPos: 27, EndPos: 41, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 4, EndLine: 6, - StartPos: 28, + StartPos: 27, EndPos: 40, }, Value: "\"\n\t\t\ttest\n\t\t\"", @@ -16207,14 +16200,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 45, + StartPos: 44, EndPos: 52, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 45, + StartPos: 44, EndPos: 51, }, Value: "'$test'", @@ -16224,14 +16217,14 @@ func TestPhp5Strings(t *testing.T) { Position: &position.Position{ StartLine: 8, EndLine: 10, - StartPos: 56, + StartPos: 55, EndPos: 70, }, Expr: &scalar.String{ Position: &position.Position{ StartLine: 8, EndLine: 10, - StartPos: 56, + StartPos: 55, EndPos: 69, }, Value: "'\n\t\t\t$test\n\t\t'", @@ -16240,7 +16233,7 @@ func TestPhp5Strings(t *testing.T) { }, } - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16268,7 +16261,7 @@ CAD; Position: &position.Position{ StartLine: 2, EndLine: 15, - StartPos: 9, + StartPos: 5, EndPos: 120, }, Stmts: []node.Node{ @@ -16276,43 +16269,43 @@ CAD; Position: &position.Position{ StartLine: 2, EndLine: 3, - StartPos: 9, + StartPos: 5, EndPos: 16, }, Expr: &scalar.Heredoc{ Position: &position.Position{ StartLine: 2, EndLine: 3, - StartPos: 9, + StartPos: 5, EndPos: 15, }, - Label: "CAD", + Label: "<<HTML"}, &stmt.Expression{ Expr: &scalar.Heredoc{ - Label: "\"LBL\"", + Label: "<<<\"LBL\"\n", Parts: []node.Node{ &scalar.EncapsedStringPart{Value: "hello world\n"}, }, @@ -356,7 +356,7 @@ func TestPrintScalarHeredoc(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&scalar.Heredoc{ - Label: "LBL", + Label: "<<") + + 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) @@ -2434,19 +2488,11 @@ func (p *Printer) printStmtDo(n node.Node) { func (p *Printer) printStmtEcho(n node.Node) { nn := n.(*stmt.Echo) - if p.s == HtmlState { - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "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("") @@ -3279,7 +3353,7 @@ func TestPrinterPrintStmtEchoHtmlState(t *testing.T) { }, }) - expected := `= 0 && r < 0x80 { // Keep ASCII as it is. - return int(r) - } - if unicode.IsLetter(r) { - return classUnicodeLeter - } - if unicode.IsDigit(r) { - return classUnicodeDigit - } - if unicode.IsGraphic(r) { - return classUnicodeGraphic - } - if r == lex.RuneEOF { - return int(r) - } - return classOther +func (l *Lexer) ReturnTokenToPool(t *Token) { + l.TokenPool.Put(t) } -func (l *Lexer) lexErrorFunc(p token.Pos, msg string) { - pos := position.NewPosition( - l.File.Line(p), - l.File.Line(p), - int(p), - int(p), - ) - l.Errors = append(l.Errors, errors.NewError(msg, pos)) +func (l *Lexer) GetPhpDocComment() string { + return l.PhpDocComment } -// NewLexer the Lexer constructor -func NewLexer(src io.Reader, fName string) *Lexer { - lexer := &Lexer{ - StateStack: []int{0}, - tokenBytesBuf: &bytes.Buffer{}, - TokenPool: &TokenPool{}, - } - - file := t.NewFileSet().AddFile(fName, -1, 1<<31-3) - lx, err := lex.New(file, bufio.NewReader(src), lex.RuneClass(Rune2Class), lex.ErrorFunc(lexer.lexErrorFunc)) - if err != nil { - panic(err) - } - lexer.Lexer = lx - return lexer +func (l *Lexer) SetPhpDocComment(s string) { + l.PhpDocComment = s } -func (l *Lexer) Error(msg string) { - chars := l.Token() - firstChar := chars[0] - lastChar := chars[len(chars)-1] - - pos := position.NewPosition( - l.File.Line(firstChar.Pos()), - l.File.Line(lastChar.Pos()), - int(firstChar.Pos()), - int(lastChar.Pos()), - ) - - l.Errors = append(l.Errors, errors.NewError(msg, pos)) +func (l *Lexer) GetErrors() []*errors.Error { + return l.Errors } -func (l *Lexer) ungetChars(n int) []lex.Char { - l.Unget(l.Lookahead()) - - chars := l.Token() - - for i := 1; i <= n; i++ { - char := chars[len(chars)-i] - l.Unget(char) - } - - buf := l.Token() - buf = buf[:len(buf)-n] - - return buf +func (l *Lexer) GetWithFreeFloating() bool { + return l.WithFreeFloating } -func (l *Lexer) pushState(state int) { - l.StateStack = append(l.StateStack, state) +func (l *Lexer) SetWithFreeFloating(b bool) { + l.WithFreeFloating = b } -func (l *Lexer) popState() { - len := len(l.StateStack) - if len <= 1 { +func (l *Lexer) AddError(e *errors.Error) { + l.Errors = append(l.Errors, e) +} + +func (l *Lexer) SetErrors(e []*errors.Error) { + l.Errors = e +} + +func (lex *Lexer) setTokenPosition(token *Token) { + token.StartLine = lex.NewLines.GetLine(lex.ts) + token.EndLine = lex.NewLines.GetLine(lex.te - 1) + token.StartPos = lex.ts + token.EndPos = lex.te +} + +func (lex *Lexer) addFreeFloating(t freefloating.StringType, ps, pe int) { + if !lex.WithFreeFloating { return } - l.StateStack = l.StateStack[:len-1] -} - -func (l *Lexer) Begin(state int) { - len := len(l.StateStack) - l.StateStack = l.StateStack[:len-1] - l.StateStack = append(l.StateStack, state) -} - -func (l *Lexer) getCurrentState() int { - return l.StateStack[len(l.StateStack)-1] -} - -func (l *Lexer) createToken(chars []lex.Char) *Token { - firstChar := chars[0] - lastChar := chars[len(chars)-1] - - token := l.TokenPool.Get() - token.FreeFloating = l.FreeFloating - token.Value = l.tokenString(chars) - - // fmt.Println(l.tokenString(chars)) - - token.StartLine = l.File.Line(firstChar.Pos()) - token.EndLine = l.File.Line(lastChar.Pos()) - token.StartPos = int(firstChar.Pos()) - token.EndPos = int(lastChar.Pos()) - - return token -} - -func (l *Lexer) tokenString(chars []lex.Char) string { - l.tokenBytesBuf.Reset() - - for _, c := range chars { - l.tokenBytesBuf.WriteRune(c.Rune) - } - - return string(l.tokenBytesBuf.Bytes()) -} - -// free-floating - -func (l *Lexer) addFreeFloating(t freefloating.StringType, chars []lex.Char) { - if !l.WithFreeFloating { - return - } - - firstChar := chars[0] - lastChar := chars[len(chars)-1] - pos := position.NewPosition( - l.File.Line(firstChar.Pos()), - l.File.Line(lastChar.Pos()), - int(firstChar.Pos()), - int(lastChar.Pos()), + lex.NewLines.GetLine(lex.ts), + lex.NewLines.GetLine(lex.te-1), + lex.ts, + lex.te, ) - l.FreeFloating = append(l.FreeFloating, freefloating.String{ + lex.FreeFloating = append(lex.FreeFloating, freefloating.String{ StringType: t, - Value: l.tokenString(chars), + Value: string(lex.data[ps:pe]), Position: pos, }) } + +func (lex *Lexer) isNotStringVar() bool { + p := lex.p + if lex.data[p-1] == '\\' && lex.data[p-2] != '\\' { + return true + } + + if len(lex.data) < p+1 { + return true + } + + if lex.data[p] == '$' && (lex.data[p+1] == '{' || isValidVarNameStart(lex.data[p+1])) { + return false + } + + if lex.data[p] == '{' && lex.data[p+1] == '$' { + return false + } + + return true +} + +func (lex *Lexer) isNotStringEnd(s byte) bool { + p := lex.p + if lex.data[p-1] == '\\' && lex.data[p-2] != '\\' { + return true + } + + return !(lex.data[p] == s) +} + +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 + } + + l := len(lex.heredocLabel) + if len(lex.data) < p+l { + return false + } + + if len(lex.data) > p+l && lex.data[p+l] != ';' && lex.data[p+l] != '\r' && lex.data[p+l] != '\n' { + return false + } + + if len(lex.data) > p+l+1 && lex.data[p+l] == ';' && lex.data[p+l+1] != '\r' && lex.data[p+l+1] != '\n' { + return false + } + + 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) +} + +func (lex *Lexer) growCallStack() { + if lex.top == len(lex.stack) { + lex.stack = append(lex.stack, 0) + } +} + +func (lex *Lexer) isNotPhpCloseToken() bool { + if lex.p+1 == len(lex.data) { + return true + } + + return lex.data[lex.p] != '?' || lex.data[lex.p+1] != '>' +} + +func (lex *Lexer) isNotNewLine() bool { + if lex.data[lex.p] == '\n' && lex.data[lex.p-1] == '\r' { + return true + } + + return lex.data[lex.p-1] != '\n' && lex.data[lex.p-1] != '\r' +} + +func (lex *Lexer) call(state int, fnext int) { + lex.growCallStack() + + lex.stack[lex.top] = state + lex.top++ + + lex.p++ + lex.cs = fnext +} + +func (lex *Lexer) ret(n int) { + lex.top = lex.top - n + if lex.top < 0 { + lex.top = 0 + } + lex.cs = lex.stack[lex.top] + lex.p++ +} + +func (lex *Lexer) ungetStr(s string) { + tokenStr := string(lex.data[lex.ts:lex.te]) + if strings.HasSuffix(tokenStr, s) { + lex.ungetCnt(len(s)) + } +} + +func (lex *Lexer) ungetCnt(n int) { + lex.p = lex.p - n + lex.te = lex.te - n +} + +func (lex *Lexer) Error(msg string) { + pos := position.NewPosition( + lex.NewLines.GetLine(lex.ts), + lex.NewLines.GetLine(lex.te-1), + lex.ts, + lex.te, + ) + + lex.Errors = append(lex.Errors, errors.NewError(msg, pos)) +} + +func isValidVarNameStart(r byte) bool { + 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 82b7633..bd54024 100644 --- a/scanner/lexer_tokens.go +++ b/scanner/lexer_tokens.go @@ -1,10 +1,10 @@ package scanner -type LexerToken int +type TokenID int -//go:generate stringer -type=LexerToken -output ./lexer_tokens_string.go +//go:generate stringer -type=TokenID -output ./tokenid_string.go const ( - T_INCLUDE LexerToken = iota + 57346 + T_INCLUDE TokenID = iota + 57346 T_INCLUDE_ONCE T_EXIT T_IF @@ -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/lexer_tokens_string.go b/scanner/lexer_tokens_string.go deleted file mode 100644 index 02e938f..0000000 --- a/scanner/lexer_tokens_string.go +++ /dev/null @@ -1,17 +0,0 @@ -// Code generated by "stringer -type=LexerToken -output ./lexer_tokens_string.go"; DO NOT EDIT. - -package scanner - -import "strconv" - -const _LexerToken_name = "T_INCLUDET_INCLUDE_ONCET_EXITT_IFT_LNUMBERT_DNUMBERT_STRINGT_STRING_VARNAMET_VARIABLET_NUM_STRINGT_INLINE_HTMLT_CHARACTERT_BAD_CHARACTERT_ENCAPSED_AND_WHITESPACET_CONSTANT_ENCAPSED_STRINGT_ECHOT_DOT_WHILET_ENDWHILET_FORT_ENDFORT_FOREACHT_ENDFOREACHT_DECLARET_ENDDECLARET_AST_SWITCHT_ENDSWITCHT_CASET_DEFAULTT_BREAKT_CONTINUET_GOTOT_FUNCTIONT_CONSTT_RETURNT_TRYT_CATCHT_FINALLYT_THROWT_USET_INSTEADOFT_GLOBALT_VART_UNSETT_ISSETT_EMPTYT_HALT_COMPILERT_CLASST_TRAITT_INTERFACET_EXTENDST_IMPLEMENTST_OBJECT_OPERATORT_DOUBLE_ARROWT_LISTT_ARRAYT_CALLABLET_CLASS_CT_TRAIT_CT_METHOD_CT_FUNC_CT_LINET_FILET_COMMENTT_DOC_COMMENTT_OPEN_TAGT_OPEN_TAG_WITH_ECHOT_CLOSE_TAGT_WHITESPACET_START_HEREDOCT_END_HEREDOCT_DOLLAR_OPEN_CURLY_BRACEST_CURLY_OPENT_PAAMAYIM_NEKUDOTAYIMT_NAMESPACET_NS_CT_DIRT_NS_SEPARATORT_ELLIPSIST_EVALT_REQUIRET_REQUIRE_ONCET_LOGICAL_ORT_LOGICAL_XORT_LOGICAL_ANDT_INSTANCEOFT_NEWT_CLONET_ELSEIFT_ELSET_ENDIFT_PRINTT_YIELDT_STATICT_ABSTRACTT_FINALT_PRIVATET_PROTECTEDT_PUBLICT_INCT_DECT_YIELD_FROMT_INT_CASTT_DOUBLE_CASTT_STRING_CASTT_ARRAY_CASTT_OBJECT_CASTT_BOOL_CASTT_UNSET_CASTT_COALESCET_SPACESHIPT_NOELSET_PLUS_EQUALT_MINUS_EQUALT_MUL_EQUALT_POW_EQUALT_DIV_EQUALT_CONCAT_EQUALT_MOD_EQUALT_AND_EQUALT_OR_EQUALT_XOR_EQUALT_SL_EQUALT_SR_EQUALT_BOOLEAN_ORT_BOOLEAN_ANDT_POWT_SLT_SRT_IS_IDENTICALT_IS_NOT_IDENTICALT_IS_EQUALT_IS_NOT_EQUALT_IS_SMALLER_OR_EQUALT_IS_GREATER_OR_EQUAL" - -var _LexerToken_index = [...]uint16{0, 9, 23, 29, 33, 42, 51, 59, 75, 85, 97, 110, 121, 136, 161, 187, 193, 197, 204, 214, 219, 227, 236, 248, 257, 269, 273, 281, 292, 298, 307, 314, 324, 330, 340, 347, 355, 360, 367, 376, 383, 388, 399, 407, 412, 419, 426, 433, 448, 455, 462, 473, 482, 494, 511, 525, 531, 538, 548, 557, 566, 576, 584, 590, 596, 605, 618, 628, 648, 659, 671, 686, 699, 725, 737, 759, 770, 776, 781, 795, 805, 811, 820, 834, 846, 859, 872, 884, 889, 896, 904, 910, 917, 924, 931, 939, 949, 956, 965, 976, 984, 989, 994, 1006, 1016, 1029, 1042, 1054, 1067, 1078, 1090, 1100, 1111, 1119, 1131, 1144, 1155, 1166, 1177, 1191, 1202, 1213, 1223, 1234, 1244, 1254, 1266, 1279, 1284, 1288, 1292, 1306, 1324, 1334, 1348, 1369, 1390} - -func (i LexerToken) String() string { - i -= 57346 - if i < 0 || i >= LexerToken(len(_LexerToken_index)-1) { - return "LexerToken(" + strconv.FormatInt(int64(i+57346), 10) + ")" - } - return _LexerToken_name[_LexerToken_index[i]:_LexerToken_index[i+1]] -} diff --git a/scanner/newline.go b/scanner/newline.go new file mode 100644 index 0000000..c95830c --- /dev/null +++ b/scanner/newline.go @@ -0,0 +1,25 @@ +package scanner + +type NewLines struct { + data []int +} + +func (nl *NewLines) Append(p int) { + if len(nl.data) == 0 || nl.data[len(nl.data)-1] < p { + nl.data = append(nl.data, p) + } +} + +func (nl *NewLines) GetLine(p int) int { + line := len(nl.data) + 1 + + for i := len(nl.data) - 1; i >= 0; i-- { + if p < nl.data[i] { + line = i + 1 + } else { + break + } + } + + return line +} diff --git a/scanner/scanner.go b/scanner/scanner.go index b9a5ae4..28b6d75 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -1,9050 +1,22874 @@ -// Code generated by golex. DO NOT EDIT. - -// Copyright (c) 2011 CZ.NIC z.s.p.o. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// blame: jnml, labs.nic.cz - +// line scanner/scanner.rl:1 package scanner import ( "fmt" - "github.com/cznic/golex/lex" + "strconv" + "strings" + "github.com/z7zmey/php-parser/freefloating" ) -const ( - INITIAL = iota - PHP - STRING - STRING_VAR - STRING_VAR_INDEX - STRING_VAR_NAME - PROPERTY - HEREDOC_END - NOWDOC - HEREDOC - BACKQUOTE - HALT_COMPILER -) +// line scanner/scanner.go:15 +const lexer_start int = 111 +const lexer_first_final int = 111 +const lexer_error int = 0 -func isValidFirstVarNameRune(r rune) bool { - return r >= 'A' && r <= 'Z' || r == '_' || r >= 'a' && r <= 'z' || r >= '\u007f' && r <= 'ÿ' +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:17 + +func NewLexer(data []byte) *Lexer { + lex := &Lexer{ + data: data, + pe: len(data), + stack: make([]int, 0), + + TokenPool: &TokenPool{}, + NewLines: NewLines{make([]int, 0, 128)}, + } + + // line scanner/scanner.go:51 + { + lex.cs = lexer_start + lex.top = 0 + lex.ts = 0 + lex.te = 0 + lex.act = 0 + } + + // line scanner/scanner.rl:29 + return lex } -func (l *Lexer) Lex(lval Lval) int { - l.FreeFloating = nil - c := l.Enter() +func (lex *Lexer) Lex(lval Lval) int { + lex.FreeFloating = nil + eof := lex.pe + var tok TokenID -yystate0: - yyrule := -1 - _ = yyrule - c = l.Rule0() + token := lex.TokenPool.Get() + token.FreeFloating = lex.FreeFloating + token.Value = string(lex.data[0:0]) - switch yyt := l.getCurrentState(); yyt { - default: - panic(fmt.Errorf(`invalid start condition %d`, yyt)) - case 0: // start condition: INITIAL - goto yystart1 - case 1: // start condition: PHP - goto yystart13 - case 2: // start condition: STRING - goto yystart548 - case 3: // start condition: STRING_VAR - goto yystart556 - case 4: // start condition: STRING_VAR_INDEX - goto yystart566 - case 5: // start condition: STRING_VAR_NAME - goto yystart583 - case 6: // start condition: PROPERTY - goto yystart588 - case 7: // start condition: HEREDOC_END - goto yystart596 - case 8: // start condition: NOWDOC - goto yystart599 - case 9: // start condition: HEREDOC - goto yystart601 - case 10: // start condition: BACKQUOTE - goto yystart605 - case 11: // start condition: HALT_COMPILER - goto yystart610 - } + lblStart := 0 + lblEnd := 0 - goto yystate0 // silence unused label error - goto yyAction // silence unused label error -yyAction: - switch yyrule { - case 1: - goto yyrule1 - case 2: - goto yyrule2 - case 3: - goto yyrule3 - case 4: - goto yyrule4 - case 5: - goto yyrule5 - case 6: - goto yyrule6 - case 7: - goto yyrule7 - case 8: - goto yyrule8 - case 9: - goto yyrule9 - case 10: - goto yyrule10 - case 11: - goto yyrule11 - case 12: - goto yyrule12 - case 13: - goto yyrule13 - case 14: - goto yyrule14 - case 15: - goto yyrule15 - case 16: - goto yyrule16 - case 17: - goto yyrule17 - case 18: - goto yyrule18 - case 19: - goto yyrule19 - case 20: - goto yyrule20 - case 21: - goto yyrule21 - case 22: - goto yyrule22 - case 23: - goto yyrule23 - case 24: - goto yyrule24 - case 25: - goto yyrule25 - case 26: - goto yyrule26 - case 27: - goto yyrule27 - case 28: - goto yyrule28 - case 29: - goto yyrule29 - case 30: - goto yyrule30 - case 31: - goto yyrule31 - case 32: - goto yyrule32 - case 33: - goto yyrule33 - case 34: - goto yyrule34 - case 35: - goto yyrule35 - case 36: - goto yyrule36 - case 37: - goto yyrule37 - case 38: - goto yyrule38 - case 39: - goto yyrule39 - case 40: - goto yyrule40 - case 41: - goto yyrule41 - case 42: - goto yyrule42 - case 43: - goto yyrule43 - case 44: - goto yyrule44 - case 45: - goto yyrule45 - case 46: - goto yyrule46 - case 47: - goto yyrule47 - case 48: - goto yyrule48 - case 49: - goto yyrule49 - case 50: - goto yyrule50 - case 51: - goto yyrule51 - case 52: - goto yyrule52 - case 53: - goto yyrule53 - case 54: - goto yyrule54 - case 55: - goto yyrule55 - case 56: - goto yyrule56 - case 57: - goto yyrule57 - case 58: - goto yyrule58 - case 59: - goto yyrule59 - case 60: - goto yyrule60 - case 61: - goto yyrule61 - case 62: - goto yyrule62 - case 63: - goto yyrule63 - case 64: - goto yyrule64 - case 65: - goto yyrule65 - case 66: - goto yyrule66 - case 67: - goto yyrule67 - case 68: - goto yyrule68 - case 69: - goto yyrule69 - case 70: - goto yyrule70 - case 71: - goto yyrule71 - case 72: - goto yyrule72 - case 73: - goto yyrule73 - case 74: - goto yyrule74 - case 75: - goto yyrule75 - case 76: - goto yyrule76 - case 77: - goto yyrule77 - case 78: - goto yyrule78 - case 79: - goto yyrule79 - case 80: - goto yyrule80 - case 81: - goto yyrule81 - case 82: - goto yyrule82 - case 83: - goto yyrule83 - case 84: - goto yyrule84 - case 85: - goto yyrule85 - case 86: - goto yyrule86 - case 87: - goto yyrule87 - case 88: - goto yyrule88 - case 89: - goto yyrule89 - case 90: - goto yyrule90 - case 91: - goto yyrule91 - case 92: - goto yyrule92 - case 93: - goto yyrule93 - case 94: - goto yyrule94 - case 95: - goto yyrule95 - case 96: - goto yyrule96 - case 97: - goto yyrule97 - case 98: - goto yyrule98 - case 99: - goto yyrule99 - case 100: - goto yyrule100 - case 101: - goto yyrule101 - case 102: - goto yyrule102 - case 103: - goto yyrule103 - case 104: - goto yyrule104 - case 105: - goto yyrule105 - case 106: - goto yyrule106 - case 107: - goto yyrule107 - case 108: - goto yyrule108 - case 109: - goto yyrule109 - case 110: - goto yyrule110 - case 111: - goto yyrule111 - case 112: - goto yyrule112 - case 113: - goto yyrule113 - case 114: - goto yyrule114 - case 115: - goto yyrule115 - case 116: - goto yyrule116 - case 117: - goto yyrule117 - case 118: - goto yyrule118 - case 119: - goto yyrule119 - case 120: - goto yyrule120 - case 121: - goto yyrule121 - case 122: - goto yyrule122 - case 123: - goto yyrule123 - case 124: - goto yyrule124 - case 125: - goto yyrule125 - case 126: - goto yyrule126 - case 127: - goto yyrule127 - case 128: - goto yyrule128 - case 129: - goto yyrule129 - case 130: - goto yyrule130 - case 131: - goto yyrule131 - case 132: - goto yyrule132 - case 133: - goto yyrule133 - case 134: - goto yyrule134 - case 135: - goto yyrule135 - case 136: - goto yyrule136 - case 137: - goto yyrule137 - case 138: - goto yyrule138 - case 139: - goto yyrule139 - case 140: - goto yyrule140 - case 141: - goto yyrule141 - case 142: - goto yyrule142 - case 143: - goto yyrule143 - case 144: - goto yyrule144 - case 145: - goto yyrule145 - case 146: - goto yyrule146 - case 147: - goto yyrule147 - case 148: - goto yyrule148 - case 149: - goto yyrule149 - case 150: - goto yyrule150 - case 151: - goto yyrule151 - case 152: - goto yyrule152 - case 153: - goto yyrule153 - case 154: - goto yyrule154 - case 155: - goto yyrule155 - case 156: - goto yyrule156 - case 157: - goto yyrule157 - case 158: - goto yyrule158 - case 159: - goto yyrule159 - case 160: - goto yyrule160 - case 161: - goto yyrule161 - case 162: - goto yyrule162 - case 163: - goto yyrule163 - case 164: - goto yyrule164 - case 165: - goto yyrule165 - case 166: - goto yyrule166 - case 167: - goto yyrule167 - case 168: - goto yyrule168 - case 169: - goto yyrule169 - } - goto yystate1 // silence unused label error -yystate1: - c = l.Next() -yystart1: - switch { - default: - goto yyabort - case c == '<': - goto yystate5 - case c == '\n': - goto yystate4 - case c == '\t' || c == '\r' || c == ' ': - goto yystate3 - case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c >= '!' && c <= ';' || c >= '=' && c <= 'ÿ': - goto yystate2 - } + _, _ = lblStart, lblEnd -yystate2: - c = l.Next() - yyrule = 2 - l.Mark() - goto yyrule2 - -yystate3: - c = l.Next() - yyrule = 1 - l.Mark() - switch { - default: - goto yyrule1 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate4 - } - -yystate4: - c = l.Next() - yyrule = 1 - l.Mark() - switch { - default: - goto yyrule1 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate4 - } - -yystate5: - c = l.Next() - yyrule = 2 - l.Mark() - switch { - default: - goto yyrule2 - case c == '?': - goto yystate6 - } - -yystate6: - c = l.Next() - yyrule = 4 - l.Mark() - switch { - default: - goto yyrule4 - case c == '=': - goto yystate7 - case c == 'P' || c == 'p': - goto yystate8 - } - -yystate7: - c = l.Next() - yyrule = 5 - l.Mark() - goto yyrule5 - -yystate8: - c = l.Next() - switch { - default: - goto yyabort - case c == 'H' || c == 'h': - goto yystate9 - } - -yystate9: - c = l.Next() - switch { - default: - goto yyabort - case c == 'P' || c == 'p': - goto yystate10 - } - -yystate10: - c = l.Next() - switch { - default: - goto yyabort - case c == '\r': - goto yystate12 - case c == '\t' || c == '\n' || c == ' ': - goto yystate11 - } - -yystate11: - c = l.Next() - yyrule = 3 - l.Mark() - goto yyrule3 - -yystate12: - c = l.Next() - yyrule = 3 - l.Mark() - switch { - default: - goto yyrule3 - case c == '\n': - goto yystate11 - } - - goto yystate13 // silence unused label error -yystate13: - c = l.Next() -yystart13: - switch { - default: - goto yyabort - case c == '!': - goto yystate17 - case c == '"': - goto yystate20 - case c == '#': - goto yystate21 - case c == '$': - goto yystate22 - case c == '%': - goto yystate24 - case c == '&': - goto yystate26 - case c == '(': - goto yystate33 - case c == ')' || c == ',' || c == '@' || c == '[' || c == ']' || c == '~': - goto yystate95 - case c == '*': - goto yystate96 - case c == '+': - goto yystate100 - case c == '-': - goto yystate103 - case c == '.': - goto yystate107 - case c == '/': - goto yystate115 - case c == '0': - goto yystate121 - case c == ':': - goto yystate128 - case c == ';': - goto yystate130 - case c == '<': - goto yystate136 - case c == '=': - goto yystate151 - case c == '>': - goto yystate155 - case c == '?': - goto yystate159 - case c == 'A' || c == 'a': - goto yystate164 - case c == 'B': - goto yystate180 - case c == 'C' || c == 'c': - goto yystate185 - case c == 'D' || c == 'd': - goto yystate222 - case c == 'E' || c == 'e': - goto yystate237 - case c == 'F' || c == 'f': - goto yystate289 - case c == 'G' || c == 'g': - goto yystate302 - case c == 'H' || c == 'J' || c == 'K' || c == 'M' || c == 'Q' || c == 'Z' || c == 'h' || c == 'j' || c == 'k' || c == 'm' || c == 'q' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate311 - case c == 'I' || c == 'i': - goto yystate312 - case c == 'L' || c == 'l': - goto yystate358 - case c == 'N' || c == 'n': - goto yystate362 - case c == 'O' || c == 'o': - goto yystate373 - case c == 'P' || c == 'p': - goto yystate375 - case c == 'R' || c == 'r': - goto yystate396 - case c == 'S' || c == 's': - goto yystate412 - case c == 'T' || c == 't': - goto yystate423 - case c == 'U' || c == 'u': - goto yystate433 - case c == 'V' || c == 'v': - goto yystate440 - case c == 'W' || c == 'w': - goto yystate443 - case c == 'X' || c == 'x': - goto yystate448 - case c == 'Y' || c == 'y': - goto yystate451 - case c == '\'': - goto yystate29 - case c == '\\': - goto yystate461 - case c == '\n': - goto yystate16 - case c == '\t' || c == '\r' || c == ' ': - goto yystate15 - case c == '^': - goto yystate462 - case c == '_': - goto yystate464 - case c == '`': - goto yystate538 - case c == 'b': - goto yystate539 - case c == '{': - goto yystate543 - case c == '|': - goto yystate544 - case c == '}': - goto yystate547 - case c >= '1' && c <= '9': - goto yystate127 - case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f': - goto yystate14 - } - -yystate14: - c = l.Next() - yyrule = 169 - l.Mark() - goto yyrule169 - -yystate15: - c = l.Next() - yyrule = 6 - l.Mark() - switch { - default: - goto yyrule6 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate16 - } - -yystate16: - c = l.Next() - yyrule = 6 - l.Mark() - switch { - default: - goto yyrule6 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate16 - } - -yystate17: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '=': - goto yystate18 - } - -yystate18: - c = l.Next() - yyrule = 114 - l.Mark() - switch { - default: - goto yyrule114 - case c == '=': - goto yystate19 - } - -yystate19: - c = l.Next() - yyrule = 115 - l.Mark() - goto yyrule115 - -yystate20: - c = l.Next() - yyrule = 146 - l.Mark() - goto yyrule146 - -yystate21: - c = l.Next() - yyrule = 126 - l.Mark() - goto yyrule126 - -yystate22: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate23 - } - -yystate23: - c = l.Next() - yyrule = 132 - l.Mark() - switch { - default: - goto yyrule132 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate23 - } - -yystate24: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '=': - goto yystate25 - } - -yystate25: - c = l.Next() - yyrule = 109 - l.Mark() - goto yyrule109 - -yystate26: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '&': - goto yystate27 - case c == '=': - goto yystate28 - } - -yystate27: - c = l.Next() - yyrule = 98 - l.Mark() - goto yyrule98 - -yystate28: - c = l.Next() - yyrule = 100 - l.Mark() - goto yyrule100 - -yystate29: - c = l.Next() - yyrule = 169 - l.Mark() - switch { - default: - goto yyrule169 - case c == '\'': - goto yystate31 - case c == '\\': - goto yystate32 - case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': - goto yystate30 - } - -yystate30: - c = l.Next() - switch { - default: - goto yyabort - case c == '\'': - goto yystate31 - case c == '\\': - goto yystate32 - case c >= '\x01' && c <= '&' || c >= '(' && c <= '[' || c >= ']' && c <= 'ÿ': - goto yystate30 - } - -yystate31: - c = l.Next() - yyrule = 139 - l.Mark() - goto yyrule139 - -yystate32: - c = l.Next() - switch { - default: - goto yyabort - case c >= '\x01' && c <= 'ÿ': - goto yystate30 - } - -yystate33: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == 'A' || c == 'a': - goto yystate35 - case c == 'B' || c == 'b': - goto yystate41 - case c == 'D' || c == 'd': - goto yystate55 - case c == 'F' || c == 'f': - goto yystate62 - case c == 'I' || c == 'i': - goto yystate66 - case c == 'O' || c == 'o': - goto yystate74 - case c == 'R' || c == 'r': - goto yystate81 - case c == 'S' || c == 's': - goto yystate84 - case c == 'U' || c == 'u': - goto yystate89 - case c == '\t' || c == ' ': - goto yystate34 - } - -yystate34: - c = l.Next() - switch { - default: - goto yyabort - case c == 'A' || c == 'a': - goto yystate35 - case c == 'B' || c == 'b': - goto yystate41 - case c == 'D' || c == 'd': - goto yystate55 - case c == 'F' || c == 'f': - goto yystate62 - case c == 'I' || c == 'i': - goto yystate66 - case c == 'O' || c == 'o': - goto yystate74 - case c == 'R' || c == 'r': - goto yystate81 - case c == 'S' || c == 's': - goto yystate84 - case c == 'U' || c == 'u': - goto yystate89 - case c == '\t' || c == ' ': - goto yystate34 - } - -yystate35: - c = l.Next() - switch { - default: - goto yyabort - case c == 'R' || c == 'r': - goto yystate36 - } - -yystate36: - c = l.Next() - switch { - default: - goto yyabort - case c == 'R' || c == 'r': - goto yystate37 - } - -yystate37: - c = l.Next() - switch { - default: - goto yyabort - case c == 'A' || c == 'a': - goto yystate38 - } - -yystate38: - c = l.Next() - switch { - default: - goto yyabort - case c == 'Y' || c == 'y': - goto yystate39 - } - -yystate39: - c = l.Next() - switch { - default: - goto yyabort - case c == ')': - goto yystate40 - case c == '\t' || c == ' ': - goto yystate39 - } - -yystate40: - c = l.Next() - yyrule = 84 - l.Mark() - goto yyrule84 - -yystate41: - c = l.Next() - switch { - default: - goto yyabort - case c == 'I' || c == 'i': - goto yystate42 - case c == 'O' || c == 'o': - goto yystate48 - } - -yystate42: - c = l.Next() - switch { - default: - goto yyabort - case c == 'N' || c == 'n': - goto yystate43 - } - -yystate43: - c = l.Next() - switch { - default: - goto yyabort - case c == 'A' || c == 'a': - goto yystate44 - } - -yystate44: - c = l.Next() - switch { - default: - goto yyabort - case c == 'R' || c == 'r': - goto yystate45 - } - -yystate45: - c = l.Next() - switch { - default: - goto yyabort - case c == 'Y' || c == 'y': - goto yystate46 - } - -yystate46: - c = l.Next() - switch { - default: - goto yyabort - case c == ')': - goto yystate47 - case c == '\t' || c == ' ': - goto yystate46 - } - -yystate47: - c = l.Next() - yyrule = 89 - l.Mark() - goto yyrule89 - -yystate48: - c = l.Next() - switch { - default: - goto yyabort - case c == 'O' || c == 'o': - goto yystate49 - } - -yystate49: - c = l.Next() - switch { - default: - goto yyabort - case c == 'L' || c == 'l': - goto yystate50 - } - -yystate50: - c = l.Next() - switch { - default: - goto yyabort - case c == ')': - goto yystate52 - case c == 'E' || c == 'e': - goto yystate53 - case c == '\t' || c == ' ': - goto yystate51 - } - -yystate51: - c = l.Next() - switch { - default: - goto yyabort - case c == ')': - goto yystate52 - case c == '\t' || c == ' ': - goto yystate51 - } - -yystate52: - c = l.Next() - yyrule = 85 - l.Mark() - goto yyrule85 - -yystate53: - c = l.Next() - switch { - default: - goto yyabort - case c == 'A' || c == 'a': - goto yystate54 - } - -yystate54: - c = l.Next() - switch { - default: - goto yyabort - case c == 'N' || c == 'n': - goto yystate51 - } - -yystate55: - c = l.Next() - switch { - default: - goto yyabort - case c == 'O' || c == 'o': - goto yystate56 - } - -yystate56: - c = l.Next() - switch { - default: - goto yyabort - case c == 'U' || c == 'u': - goto yystate57 - } - -yystate57: - c = l.Next() - switch { - default: - goto yyabort - case c == 'B' || c == 'b': - goto yystate58 - } - -yystate58: - c = l.Next() - switch { - default: - goto yyabort - case c == 'L' || c == 'l': - goto yystate59 - } - -yystate59: - c = l.Next() - switch { - default: - goto yyabort - case c == 'E' || c == 'e': - goto yystate60 - } - -yystate60: - c = l.Next() - switch { - default: - goto yyabort - case c == ')': - goto yystate61 - case c == '\t' || c == ' ': - goto yystate60 - } - -yystate61: - c = l.Next() - yyrule = 86 - l.Mark() - goto yyrule86 - -yystate62: - c = l.Next() - switch { - default: - goto yyabort - case c == 'L' || c == 'l': - goto yystate63 - } - -yystate63: - c = l.Next() - switch { - default: - goto yyabort - case c == 'O' || c == 'o': - goto yystate64 - } - -yystate64: - c = l.Next() - switch { - default: - goto yyabort - case c == 'A' || c == 'a': - goto yystate65 - } - -yystate65: - c = l.Next() - switch { - default: - goto yyabort - case c == 'T' || c == 't': - goto yystate60 - } - -yystate66: - c = l.Next() - switch { - default: - goto yyabort - case c == 'N' || c == 'n': - goto yystate67 - } - -yystate67: - c = l.Next() - switch { - default: - goto yyabort - case c == 'T' || c == 't': - goto yystate68 - } - -yystate68: - c = l.Next() - switch { - default: - goto yyabort - case c == ')': - goto yystate70 - case c == 'E' || c == 'e': - goto yystate71 - case c == '\t' || c == ' ': - goto yystate69 - } - -yystate69: - c = l.Next() - switch { - default: - goto yyabort - case c == ')': - goto yystate70 - case c == '\t' || c == ' ': - goto yystate69 - } - -yystate70: - c = l.Next() - yyrule = 87 - l.Mark() - goto yyrule87 - -yystate71: - c = l.Next() - switch { - default: - goto yyabort - case c == 'G' || c == 'g': - goto yystate72 - } - -yystate72: - c = l.Next() - switch { - default: - goto yyabort - case c == 'E' || c == 'e': - goto yystate73 - } - -yystate73: - c = l.Next() - switch { - default: - goto yyabort - case c == 'R' || c == 'r': - goto yystate69 - } - -yystate74: - c = l.Next() - switch { - default: - goto yyabort - case c == 'B' || c == 'b': - goto yystate75 - } - -yystate75: - c = l.Next() - switch { - default: - goto yyabort - case c == 'J' || c == 'j': - goto yystate76 - } - -yystate76: - c = l.Next() - switch { - default: - goto yyabort - case c == 'E' || c == 'e': - goto yystate77 - } - -yystate77: - c = l.Next() - switch { - default: - goto yyabort - case c == 'C' || c == 'c': - goto yystate78 - } - -yystate78: - c = l.Next() - switch { - default: - goto yyabort - case c == 'T' || c == 't': - goto yystate79 - } - -yystate79: - c = l.Next() - switch { - default: - goto yyabort - case c == ')': - goto yystate80 - case c == '\t' || c == ' ': - goto yystate79 - } - -yystate80: - c = l.Next() - yyrule = 88 - l.Mark() - goto yyrule88 - -yystate81: - c = l.Next() - switch { - default: - goto yyabort - case c == 'E' || c == 'e': - goto yystate82 - } - -yystate82: - c = l.Next() - switch { - default: - goto yyabort - case c == 'A' || c == 'a': - goto yystate83 - } - -yystate83: - c = l.Next() - switch { - default: - goto yyabort - case c == 'L' || c == 'l': - goto yystate60 - } - -yystate84: - c = l.Next() - switch { - default: - goto yyabort - case c == 'T' || c == 't': - goto yystate85 - } - -yystate85: - c = l.Next() - switch { - default: - goto yyabort - case c == 'R' || c == 'r': - goto yystate86 - } - -yystate86: - c = l.Next() - switch { - default: - goto yyabort - case c == 'I' || c == 'i': - goto yystate87 - } - -yystate87: - c = l.Next() - switch { - default: - goto yyabort - case c == 'N' || c == 'n': - goto yystate88 - } - -yystate88: - c = l.Next() - switch { - default: - goto yyabort - case c == 'G' || c == 'g': - goto yystate46 - } - -yystate89: - c = l.Next() - switch { - default: - goto yyabort - case c == 'N' || c == 'n': - goto yystate90 - } - -yystate90: - c = l.Next() - switch { - default: - goto yyabort - case c == 'S' || c == 's': - goto yystate91 - } - -yystate91: - c = l.Next() - switch { - default: - goto yyabort - case c == 'E' || c == 'e': - goto yystate92 - } - -yystate92: - c = l.Next() - switch { - default: - goto yyabort - case c == 'T' || c == 't': - goto yystate93 - } - -yystate93: - c = l.Next() - switch { - default: - goto yyabort - case c == ')': - goto yystate94 - case c == '\t' || c == ' ': - goto yystate93 - } - -yystate94: - c = l.Next() - yyrule = 90 - l.Mark() - goto yyrule90 - -yystate95: - c = l.Next() - yyrule = 129 - l.Mark() - goto yyrule129 - -yystate96: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '*': - goto yystate97 - case c == '=': - goto yystate99 - } - -yystate97: - c = l.Next() - yyrule = 122 - l.Mark() - switch { - default: - goto yyrule122 - case c == '=': - goto yystate98 - } - -yystate98: - c = l.Next() - yyrule = 104 - l.Mark() - goto yyrule104 - -yystate99: - c = l.Next() - yyrule = 103 - l.Mark() - goto yyrule103 - -yystate100: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '+': - goto yystate101 - case c == '=': - goto yystate102 - } - -yystate101: - c = l.Next() - yyrule = 111 - l.Mark() - goto yyrule111 - -yystate102: - c = l.Next() - yyrule = 106 - l.Mark() - goto yyrule106 - -yystate103: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '-': - goto yystate104 - case c == '=': - goto yystate105 - case c == '>': - goto yystate106 - } - -yystate104: - c = l.Next() - yyrule = 110 - l.Mark() - goto yyrule110 - -yystate105: - c = l.Next() - yyrule = 107 - l.Mark() - goto yyrule107 - -yystate106: - c = l.Next() - yyrule = 134 - l.Mark() - goto yyrule134 - -yystate107: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '.': - goto yystate108 - case c == '=': - goto yystate114 - case c >= '0' && c <= '9': - goto yystate110 - } - -yystate108: - c = l.Next() - switch { - default: - goto yyabort - case c == '.': - goto yystate109 - } - -yystate109: - c = l.Next() - yyrule = 96 - l.Mark() - goto yyrule96 - -yystate110: - c = l.Next() - yyrule = 9 - l.Mark() - switch { - default: - goto yyrule9 - case c == 'E' || c == 'e': - goto yystate111 - case c >= '0' && c <= '9': - goto yystate110 - } - -yystate111: - c = l.Next() - switch { - default: - goto yyabort - case c == '+' || c == '-': - goto yystate112 - case c >= '0' && c <= '9': - goto yystate113 - } - -yystate112: - c = l.Next() - switch { - default: - goto yyabort - case c >= '0' && c <= '9': - goto yystate113 - } - -yystate113: - c = l.Next() - yyrule = 9 - l.Mark() - switch { - default: - goto yyrule9 - case c >= '0' && c <= '9': - goto yystate113 - } - -yystate114: - c = l.Next() - yyrule = 102 - l.Mark() - goto yyrule102 - -yystate115: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '*': - goto yystate116 - case c == '/': - goto yystate119 - case c == '=': - goto yystate120 - } - -yystate116: - c = l.Next() - yyrule = 128 - l.Mark() - switch { - default: - goto yyrule128 - case c == '*': - goto yystate117 - } - -yystate117: - c = l.Next() - yyrule = 128 - l.Mark() - switch { - default: - goto yyrule128 - case c == '/': - goto yystate118 - } - -yystate118: - c = l.Next() - yyrule = 127 - l.Mark() - goto yyrule127 - -yystate119: - c = l.Next() - yyrule = 126 - l.Mark() - goto yyrule126 - -yystate120: - c = l.Next() - yyrule = 105 - l.Mark() - goto yyrule105 - -yystate121: - c = l.Next() - yyrule = 11 - l.Mark() - switch { - default: - goto yyrule11 - case c == '.': - goto yystate110 - case c == 'B' || c == 'b': - goto yystate123 - case c == 'E' || c == 'e': - goto yystate111 - case c == 'X' || c == 'x': - goto yystate125 - case c >= '0' && c <= '9': - goto yystate122 - } - -yystate122: - c = l.Next() - yyrule = 11 - l.Mark() - switch { - default: - goto yyrule11 - case c == '.': - goto yystate110 - case c == 'E' || c == 'e': - goto yystate111 - case c >= '0' && c <= '9': - goto yystate122 - } - -yystate123: - c = l.Next() - switch { - default: - goto yyabort - case c == '0' || c == '1': - goto yystate124 - } - -yystate124: - c = l.Next() - yyrule = 10 - l.Mark() - switch { - default: - goto yyrule10 - case c == '0' || c == '1': - goto yystate124 - } - -yystate125: - c = l.Next() - switch { - default: - goto yyabort - case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': - goto yystate126 - } - -yystate126: - c = l.Next() - yyrule = 12 - l.Mark() - switch { - default: - goto yyrule12 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': - goto yystate126 - } - -yystate127: - c = l.Next() - yyrule = 11 - l.Mark() - switch { - default: - goto yyrule11 - case c == '.': - goto yystate110 - case c == 'E' || c == 'e': - goto yystate111 - case c >= '0' && c <= '9': - goto yystate122 - } - -yystate128: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == ':': - goto yystate129 - } - -yystate129: - c = l.Next() - yyrule = 97 - l.Mark() - goto yyrule97 - -yystate130: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '?': - goto yystate132 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate131 - } - -yystate131: - c = l.Next() - switch { - default: - goto yyabort - case c == '?': - goto yystate132 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate131 - } - -yystate132: - c = l.Next() - switch { - default: - goto yyabort - case c == '>': - goto yystate133 - } - -yystate133: - c = l.Next() - yyrule = 7 - l.Mark() - switch { - default: - goto yyrule7 - case c == '\n': - goto yystate134 - case c == '\r': - goto yystate135 - } - -yystate134: - c = l.Next() - yyrule = 7 - l.Mark() - goto yyrule7 - -yystate135: - c = l.Next() - yyrule = 7 - l.Mark() - switch { - default: - goto yyrule7 - case c == '\n': - goto yystate134 - } - -yystate136: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '<': - goto yystate137 - case c == '=': - goto yystate148 - case c == '>': - goto yystate150 - } - -yystate137: - c = l.Next() - yyrule = 123 - l.Mark() - switch { - default: - goto yyrule123 - case c == '<': - goto yystate138 - case c == '=': - goto yystate147 - } - -yystate138: - c = l.Next() - switch { - default: - goto yyabort - case c == '"': - goto yystate139 - case c == '\'': - goto yystate144 - case c == '\t' || c == ' ': - goto yystate138 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate146 - } - -yystate139: - c = l.Next() - switch { - default: - goto yyabort - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate140 - } - -yystate140: - c = l.Next() - switch { - default: - goto yyabort - case c == '"': - goto yystate141 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate140 - } - -yystate141: - c = l.Next() - switch { - default: - goto yyabort - case c == '\n': - goto yystate142 - case c == '\r': - goto yystate143 - } - -yystate142: - c = l.Next() - yyrule = 142 - l.Mark() - goto yyrule142 - -yystate143: - c = l.Next() - yyrule = 142 - l.Mark() - switch { - default: - goto yyrule142 - case c == '\n': - goto yystate142 - } - -yystate144: - c = l.Next() - switch { - default: - goto yyabort - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate145 - } - -yystate145: - c = l.Next() - switch { - default: - goto yyabort - case c == '\'': - goto yystate141 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate145 - } - -yystate146: - c = l.Next() - switch { - default: - goto yyabort - case c == '\n': - goto yystate142 - case c == '\r': - goto yystate143 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate146 - } - -yystate147: - c = l.Next() - yyrule = 118 - l.Mark() - goto yyrule118 - -yystate148: - c = l.Next() - yyrule = 121 - l.Mark() - switch { - default: - goto yyrule121 - case c == '>': - goto yystate149 - } - -yystate149: - c = l.Next() - yyrule = 113 - l.Mark() - goto yyrule113 - -yystate150: - c = l.Next() - yyrule = 114 - l.Mark() - goto yyrule114 - -yystate151: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '=': - goto yystate152 - case c == '>': - goto yystate154 - } - -yystate152: - c = l.Next() - yyrule = 116 - l.Mark() - switch { - default: - goto yyrule116 - case c == '=': - goto yystate153 - } - -yystate153: - c = l.Next() - yyrule = 117 - l.Mark() - goto yyrule117 - -yystate154: - c = l.Next() - yyrule = 112 - l.Mark() - goto yyrule112 - -yystate155: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '=': - goto yystate156 - case c == '>': - goto yystate157 - } - -yystate156: - c = l.Next() - yyrule = 120 - l.Mark() - goto yyrule120 - -yystate157: - c = l.Next() - yyrule = 124 - l.Mark() - switch { - default: - goto yyrule124 - case c == '=': - goto yystate158 - } - -yystate158: - c = l.Next() - yyrule = 119 - l.Mark() - goto yyrule119 - -yystate159: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '>': - goto yystate160 - case c == '?': - goto yystate163 - } - -yystate160: - c = l.Next() - yyrule = 8 - l.Mark() - switch { - default: - goto yyrule8 - case c == '\n': - goto yystate161 - case c == '\r': - goto yystate162 - } - -yystate161: - c = l.Next() - yyrule = 8 - l.Mark() - goto yyrule8 - -yystate162: - c = l.Next() - yyrule = 8 - l.Mark() - switch { - default: - goto yyrule8 - case c == '\n': - goto yystate161 - } - -yystate163: - c = l.Next() - yyrule = 125 - l.Mark() - goto yyrule125 - -yystate164: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'B' || c == 'b': - goto yystate166 - case c == 'N' || c == 'n': - goto yystate173 - case c == 'R' || c == 'r': - goto yystate175 - case c == 'S' || c == 's': - goto yystate179 - case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'M' || c >= 'O' && c <= 'Q' || c >= 'T' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'm' || c >= 'o' && c <= 'q' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate165: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate166: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate167 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate167: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate168 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate168: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate169 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate169: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate170 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate170: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate171 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate171: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate172 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate172: - c = l.Next() - yyrule = 13 - l.Mark() - switch { - default: - goto yyrule13 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate173: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'D' || c == 'd': - goto yystate174 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate174: - c = l.Next() - yyrule = 92 - l.Mark() - switch { - default: - goto yyrule92 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate175: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate176 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate176: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate177 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate177: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'Y' || c == 'y': - goto yystate178 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate178: - c = l.Next() - yyrule = 14 - l.Mark() - switch { - default: - goto yyrule14 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate179: - c = l.Next() - yyrule = 15 - l.Mark() - switch { - default: - goto yyrule15 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate180: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate181 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate181: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate182 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate182: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate183 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate183: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'K' || c == 'k': - goto yystate184 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'J' || c >= 'L' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'j' || c >= 'l' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate184: - c = l.Next() - yyrule = 16 - l.Mark() - switch { - default: - goto yyrule16 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate185: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate186 - case c == 'F' || c == 'f': - goto yystate198 - case c == 'L' || c == 'l': - goto yystate206 - case c == 'O' || c == 'o': - goto yystate213 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'E' || c >= 'G' && c <= 'K' || c == 'M' || c == 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'e' || c >= 'g' && c <= 'k' || c == 'm' || c == 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate186: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate187 - case c == 'S' || c == 's': - goto yystate193 - case c == 'T' || c == 't': - goto yystate195 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'R' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'r' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate187: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate188 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate188: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate189 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate189: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'B' || c == 'b': - goto yystate190 - case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate190: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate191 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate191: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate192 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate192: - c = l.Next() - yyrule = 17 - l.Mark() - switch { - default: - goto yyrule17 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate193: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate194 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate194: - c = l.Next() - yyrule = 18 - l.Mark() - switch { - default: - goto yyrule18 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate195: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate196 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate196: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate197 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate197: - c = l.Next() - yyrule = 19 - l.Mark() - switch { - default: - goto yyrule19 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate198: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'U' || c == 'u': - goto yystate199 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate199: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate200 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate200: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate201 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate201: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate202 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate202: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate203 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate203: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate204 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate204: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate205 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate205: - c = l.Next() - yyrule = 44 - l.Mark() - switch { - default: - goto yyrule44 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate206: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate207 - case c == 'O' || c == 'o': - goto yystate210 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate207: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate208 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate208: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate209 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate209: - c = l.Next() - yyrule = 20 - l.Mark() - switch { - default: - goto yyrule20 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate210: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate211 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate211: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate212 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate212: - c = l.Next() - yyrule = 21 - l.Mark() - switch { - default: - goto yyrule21 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate213: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate214 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate214: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate215 - case c == 'T' || c == 't': - goto yystate217 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate215: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate216 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate216: - c = l.Next() - yyrule = 22 - l.Mark() - switch { - default: - goto yyrule22 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate217: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate218 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate218: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate219 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate219: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'U' || c == 'u': - goto yystate220 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate220: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate221 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate221: - c = l.Next() - yyrule = 23 - l.Mark() - switch { - default: - goto yyrule23 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate222: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate223 - case c == 'I' || c == 'i': - goto yystate234 - case c == 'O' || c == 'o': - goto yystate236 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'H' || c >= 'J' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'h' || c >= 'j' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate223: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate224 - case c == 'F' || c == 'f': - goto yystate229 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c == 'D' || c == 'E' || c >= 'G' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c == 'd' || c == 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate224: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate225 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate225: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate226 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate226: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate227 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate227: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate228 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate228: - c = l.Next() - yyrule = 24 - l.Mark() - switch { - default: - goto yyrule24 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate229: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate230 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate230: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'U' || c == 'u': - goto yystate231 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate231: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate232 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate232: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate233 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate233: - c = l.Next() - yyrule = 25 - l.Mark() - switch { - default: - goto yyrule25 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate234: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate235 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate235: - c = l.Next() - yyrule = 38 - l.Mark() - switch { - default: - goto yyrule38 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate236: - c = l.Next() - yyrule = 26 - l.Mark() - switch { - default: - goto yyrule26 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate237: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate238 - case c == 'L' || c == 'l': - goto yystate241 - case c == 'M' || c == 'm': - goto yystate246 - case c == 'N' || c == 'n': - goto yystate250 - case c == 'V' || c == 'v': - goto yystate279 - case c == 'X' || c == 'x': - goto yystate282 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'K' || c >= 'O' && c <= 'U' || c == 'W' || c == 'Y' || c == 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'k' || c >= 'o' && c <= 'u' || c == 'w' || c == 'y' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate238: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate239 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate239: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate240 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate240: - c = l.Next() - yyrule = 27 - l.Mark() - switch { - default: - goto yyrule27 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate241: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate242 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate242: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate243 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate243: - c = l.Next() - yyrule = 28 - l.Mark() - switch { - default: - goto yyrule28 - case c == 'I' || c == 'i': - goto yystate244 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate244: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'F' || c == 'f': - goto yystate245 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate245: - c = l.Next() - yyrule = 29 - l.Mark() - switch { - default: - goto yyrule29 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate246: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'P' || c == 'p': - goto yystate247 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate247: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate248 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate248: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'Y' || c == 'y': - goto yystate249 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate249: - c = l.Next() - yyrule = 30 - l.Mark() - switch { - default: - goto yyrule30 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate250: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'D' || c == 'd': - goto yystate251 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate251: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'D' || c == 'd': - goto yystate252 - case c == 'F' || c == 'f': - goto yystate259 - case c == 'I' || c == 'i': - goto yystate266 - case c == 'S' || c == 's': - goto yystate268 - case c == 'W' || c == 'w': - goto yystate274 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c == 'E' || c == 'G' || c == 'H' || c >= 'J' && c <= 'R' || c >= 'T' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c == 'e' || c == 'g' || c == 'h' || c >= 'j' && c <= 'r' || c >= 't' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate252: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate253 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate253: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate254 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate254: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate255 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate255: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate256 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate256: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate257 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate257: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate258 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate258: - c = l.Next() - yyrule = 31 - l.Mark() - switch { - default: - goto yyrule31 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate259: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate260 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate260: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate261 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate261: - c = l.Next() - yyrule = 32 - l.Mark() - switch { - default: - goto yyrule32 - case c == 'E' || c == 'e': - goto yystate262 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate262: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate263 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate263: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate264 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate264: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate265 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate265: - c = l.Next() - yyrule = 33 - l.Mark() - switch { - default: - goto yyrule33 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate266: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'F' || c == 'f': - goto yystate267 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate267: - c = l.Next() - yyrule = 34 - l.Mark() - switch { - default: - goto yyrule34 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate268: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'W' || c == 'w': - goto yystate269 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate269: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate270 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate270: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate271 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate271: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate272 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate272: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate273 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate273: - c = l.Next() - yyrule = 35 - l.Mark() - switch { - default: - goto yyrule35 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate274: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate275 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate275: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate276 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate276: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate277 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate277: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate278 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate278: - c = l.Next() - yyrule = 36 - l.Mark() - switch { - default: - goto yyrule36 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate279: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate280 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate280: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate281 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate281: - c = l.Next() - yyrule = 37 - l.Mark() - switch { - default: - goto yyrule37 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate282: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate283 - case c == 'T' || c == 't': - goto yystate284 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate283: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate235 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate284: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate285 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate285: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate286 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate286: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'D' || c == 'd': - goto yystate287 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate287: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate288 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate288: - c = l.Next() - yyrule = 39 - l.Mark() - switch { - default: - goto yyrule39 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate289: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate290 - case c == 'O' || c == 'o': - goto yystate296 - case c == 'U' || c == 'u': - goto yystate199 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'N' || c >= 'P' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'n' || c >= 'p' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate290: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate291 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate291: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate292 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate292: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate293 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate293: - c = l.Next() - yyrule = 40 - l.Mark() - switch { - default: - goto yyrule40 - case c == 'L' || c == 'l': - goto yystate294 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate294: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'Y' || c == 'y': - goto yystate295 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'X' || c == 'Z' || c == '_' || c >= 'a' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate295: - c = l.Next() - yyrule = 41 - l.Mark() - switch { - default: - goto yyrule41 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate296: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate297 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate297: - c = l.Next() - yyrule = 42 - l.Mark() - switch { - default: - goto yyrule42 - case c == 'E' || c == 'e': - goto yystate298 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate298: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate299 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate299: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate300 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate300: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate301 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate301: - c = l.Next() - yyrule = 43 - l.Mark() - switch { - default: - goto yyrule43 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate302: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate303 - case c == 'O' || c == 'o': - goto yystate308 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c == 'M' || c == 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c == 'm' || c == 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate303: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate304 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate304: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'B' || c == 'b': - goto yystate305 - case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate305: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate306 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate306: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate307 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate307: - c = l.Next() - yyrule = 45 - l.Mark() - switch { - default: - goto yyrule45 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate308: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate309 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate309: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate310 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate310: - c = l.Next() - yyrule = 46 - l.Mark() - switch { - default: - goto yyrule46 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate311: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate312: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'F' || c == 'f': - goto yystate313 - case c == 'M' || c == 'm': - goto yystate314 - case c == 'N' || c == 'n': - goto yystate323 - case c == 'S' || c == 's': - goto yystate354 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'L' || c >= 'O' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'l' || c >= 'o' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate313: - c = l.Next() - yyrule = 47 - l.Mark() - switch { - default: - goto yyrule47 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate314: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'P' || c == 'p': - goto yystate315 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate315: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate316 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate316: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate317 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate317: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'M' || c == 'm': - goto yystate318 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate318: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate319 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate319: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate320 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate320: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate321 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate321: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate322 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate322: - c = l.Next() - yyrule = 49 - l.Mark() - switch { - default: - goto yyrule49 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate323: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate324 - case c == 'S' || c == 's': - goto yystate334 - case c == 'T' || c == 't': - goto yystate347 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'R' || c >= 'U' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'r' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate324: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate325 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate325: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'U' || c == 'u': - goto yystate326 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate326: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'D' || c == 'd': - goto yystate327 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate327: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate328 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate328: - c = l.Next() - yyrule = 71 - l.Mark() - switch { - default: - goto yyrule71 - case c == '_': - goto yystate329 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate329: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate330 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate330: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate331 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate331: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate332 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate332: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate333 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate333: - c = l.Next() - yyrule = 72 - l.Mark() - switch { - default: - goto yyrule72 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate334: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate335 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate335: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate336 - case c == 'E' || c == 'e': - goto yystate342 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate336: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate337 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate337: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate338 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate338: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate339 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate339: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate340 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate340: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'F' || c == 'f': - goto yystate341 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate341: - c = l.Next() - yyrule = 50 - l.Mark() - switch { - default: - goto yyrule50 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate342: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate343 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate343: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'D' || c == 'd': - goto yystate344 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate344: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate345 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate345: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'F' || c == 'f': - goto yystate346 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate346: - c = l.Next() - yyrule = 51 - l.Mark() - switch { - default: - goto yyrule51 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate347: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate348 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate348: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate349 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate349: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'F' || c == 'f': - goto yystate350 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'E' || c >= 'G' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'e' || c >= 'g' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate350: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate351 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate351: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate352 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate352: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate353 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate353: - c = l.Next() - yyrule = 52 - l.Mark() - switch { - default: - goto yyrule52 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate354: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate355 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate355: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate356 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate356: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate357 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate357: - c = l.Next() - yyrule = 48 - l.Mark() - switch { - default: - goto yyrule48 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate358: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate359 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate359: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate360 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate360: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate361 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate361: - c = l.Next() - yyrule = 53 - l.Mark() - switch { - default: - goto yyrule53 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate362: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate363 - case c == 'E' || c == 'e': - goto yystate371 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate363: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'M' || c == 'm': - goto yystate364 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate364: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate365 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate365: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate366 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate366: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'P' || c == 'p': - goto yystate367 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate367: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate368 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate368: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate369 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate369: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate370 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate370: - c = l.Next() - yyrule = 54 - l.Mark() - switch { - default: - goto yyrule54 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate371: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'W' || c == 'w': - goto yystate372 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate372: - c = l.Next() - yyrule = 91 - l.Mark() - switch { - default: - goto yyrule91 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate373: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate374 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate374: - c = l.Next() - yyrule = 93 - l.Mark() - switch { - default: - goto yyrule93 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate375: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate376 - case c == 'U' || c == 'u': - goto yystate391 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c == 'S' || c == 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c == 's' || c == 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate376: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate377 - case c == 'O' || c == 'o': - goto yystate384 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate377: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate378 - case c == 'V' || c == 'v': - goto yystate380 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'U' || c >= 'W' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'u' || c >= 'w' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate378: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate379 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate379: - c = l.Next() - yyrule = 57 - l.Mark() - switch { - default: - goto yyrule57 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate380: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate381 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate381: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate382 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate382: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate383 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate383: - c = l.Next() - yyrule = 55 - l.Mark() - switch { - default: - goto yyrule55 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate384: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate385 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate385: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate386 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate386: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate387 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate387: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate388 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate388: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate389 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate389: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'D' || c == 'd': - goto yystate390 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate390: - c = l.Next() - yyrule = 58 - l.Mark() - switch { - default: - goto yyrule58 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate391: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'B' || c == 'b': - goto yystate392 - case c >= '0' && c <= '9' || c == 'A' || c >= 'C' && c <= 'Z' || c == '_' || c == 'a' || c >= 'c' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate392: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate393 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate393: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate394 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate394: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate395 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate395: - c = l.Next() - yyrule = 56 - l.Mark() - switch { - default: - goto yyrule56 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate396: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate397 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate397: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'Q' || c == 'q': - goto yystate398 - case c == 'T' || c == 't': - goto yystate408 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'P' || c == 'R' || c == 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'p' || c == 'r' || c == 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate398: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'U' || c == 'u': - goto yystate399 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate399: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate400 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate400: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate401 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate401: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate402 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate402: - c = l.Next() - yyrule = 73 - l.Mark() - switch { - default: - goto yyrule73 - case c == '_': - goto yystate403 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate403: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate404 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate404: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate405 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate405: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate406 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate406: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate407 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate407: - c = l.Next() - yyrule = 74 - l.Mark() - switch { - default: - goto yyrule74 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate408: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'U' || c == 'u': - goto yystate409 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate409: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate410 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate410: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate411 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate411: - c = l.Next() - yyrule = 59 - l.Mark() - switch { - default: - goto yyrule59 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate412: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate413 - case c == 'W' || c == 'w': - goto yystate418 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c == 'U' || c == 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c == 'u' || c == 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate413: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate414 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate414: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate415 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate415: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate416 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate416: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate417 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate417: - c = l.Next() - yyrule = 60 - l.Mark() - switch { - default: - goto yyrule60 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate418: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate419 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate419: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate420 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate420: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate421 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate421: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate422 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate422: - c = l.Next() - yyrule = 61 - l.Mark() - switch { - default: - goto yyrule61 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate423: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate424 - case c == 'R' || c == 'r': - goto yystate428 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate424: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate425 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate425: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate426 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate426: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'W' || c == 'w': - goto yystate427 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'V' || c >= 'X' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'v' || c >= 'x' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate427: - c = l.Next() - yyrule = 62 - l.Mark() - switch { - default: - goto yyrule62 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate428: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate429 - case c == 'Y' || c == 'y': - goto yystate432 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'X' || c == 'Z' || c == '_' || c >= 'b' && c <= 'x' || c == 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate429: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate430 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate430: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate431 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate431: - c = l.Next() - yyrule = 63 - l.Mark() - switch { - default: - goto yyrule63 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate432: - c = l.Next() - yyrule = 64 - l.Mark() - switch { - default: - goto yyrule64 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate433: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate434 - case c == 'S' || c == 's': - goto yystate438 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate434: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate435 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate435: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate436 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate436: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate437 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate437: - c = l.Next() - yyrule = 65 - l.Mark() - switch { - default: - goto yyrule65 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate438: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate439 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate439: - c = l.Next() - yyrule = 66 - l.Mark() - switch { - default: - goto yyrule66 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate440: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate441 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate441: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate442 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate442: - c = l.Next() - yyrule = 67 - l.Mark() - switch { - default: - goto yyrule67 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate443: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate444 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate444: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate445 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate445: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate446 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate446: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate447 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate447: - c = l.Next() - yyrule = 68 - l.Mark() - switch { - default: - goto yyrule68 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate448: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate449 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate449: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate450 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate450: - c = l.Next() - yyrule = 94 - l.Mark() - switch { - default: - goto yyrule94 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate451: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate452 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate452: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate453 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate453: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate454 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate454: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'D' || c == 'd': - goto yystate455 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate455: - c = l.Next() - yyrule = 70 - l.Mark() - switch { - default: - goto yyrule70 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate456 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate456: - c = l.Next() - switch { - default: - goto yyabort - case c == 'F' || c == 'f': - goto yystate457 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate456 - } - -yystate457: - c = l.Next() - switch { - default: - goto yyabort - case c == 'R' || c == 'r': - goto yystate458 - } - -yystate458: - c = l.Next() - switch { - default: - goto yyabort - case c == 'O' || c == 'o': - goto yystate459 - } - -yystate459: - c = l.Next() - switch { - default: - goto yyabort - case c == 'M' || c == 'm': - goto yystate460 - } - -yystate460: - c = l.Next() - yyrule = 69 - l.Mark() - goto yyrule69 - -yystate461: - c = l.Next() - yyrule = 95 - l.Mark() - goto yyrule95 - -yystate462: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '=': - goto yystate463 - } - -yystate463: - c = l.Next() - yyrule = 108 - l.Mark() - goto yyrule108 - -yystate464: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate465 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate465: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate466 - case c == 'D' || c == 'd': - goto yystate473 - case c == 'F' || c == 'f': - goto yystate478 - case c == 'H' || c == 'h': - goto yystate493 - case c == 'L' || c == 'l': - goto yystate506 - case c == 'M' || c == 'm': - goto yystate512 - case c == 'N' || c == 'n': - goto yystate520 - case c == 'T' || c == 't': - goto yystate531 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c == 'E' || c == 'G' || c >= 'I' && c <= 'K' || c >= 'O' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c == 'e' || c == 'g' || c >= 'i' && c <= 'k' || c >= 'o' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate466: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate467 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate467: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate468 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate468: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate469 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate469: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate470 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate470: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate471 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate471: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate472 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate472: - c = l.Next() - yyrule = 75 - l.Mark() - switch { - default: - goto yyrule75 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate473: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate474 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate474: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate475 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate475: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate476 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate476: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate477 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate477: - c = l.Next() - yyrule = 76 - l.Mark() - switch { - default: - goto yyrule76 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate478: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate479 - case c == 'U' || c == 'u': - goto yystate484 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'T' || c >= 'V' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 't' || c >= 'v' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate479: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate480 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate480: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate481 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate481: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate482 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate482: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate483 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate483: - c = l.Next() - yyrule = 77 - l.Mark() - switch { - default: - goto yyrule77 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate484: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate485 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate485: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate486 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate486: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate487 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate487: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate488 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate488: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate489 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate489: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate490 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate490: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate491 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate491: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate492 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate492: - c = l.Next() - yyrule = 78 - l.Mark() - switch { - default: - goto yyrule78 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate493: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate494 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate494: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate495 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate495: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate496 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate496: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate497 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate497: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate498 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate498: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate499 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate499: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'M' || c == 'm': - goto yystate500 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate500: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'P' || c == 'p': - goto yystate501 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate501: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate502 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate502: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'L' || c == 'l': - goto yystate503 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'K' || c >= 'M' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'k' || c >= 'm' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate503: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate504 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate504: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate505 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate505: - c = l.Next() - yyrule = 83 - l.Mark() - switch { - default: - goto yyrule83 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate506: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate507 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate507: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'N' || c == 'n': - goto yystate508 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'M' || c >= 'O' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'm' || c >= 'o' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate508: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate509 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate509: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate510 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate510: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate511 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate511: - c = l.Next() - yyrule = 79 - l.Mark() - switch { - default: - goto yyrule79 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate512: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate513 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate513: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate514 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate514: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'H' || c == 'h': - goto yystate515 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'G' || c >= 'I' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'g' || c >= 'i' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate515: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'O' || c == 'o': - goto yystate516 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'N' || c >= 'P' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'n' || c >= 'p' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate516: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'D' || c == 'd': - goto yystate517 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'C' || c >= 'E' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'c' || c >= 'e' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate517: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate518 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate518: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate519 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate519: - c = l.Next() - yyrule = 81 - l.Mark() - switch { - default: - goto yyrule81 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate520: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate521 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate521: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'M' || c == 'm': - goto yystate522 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'L' || c >= 'N' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'l' || c >= 'n' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate522: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate523 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate523: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'S' || c == 's': - goto yystate524 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'R' || c >= 'T' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'r' || c >= 't' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate524: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'P' || c == 'p': - goto yystate525 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'O' || c >= 'Q' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'o' || c >= 'q' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate525: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate526 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate526: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'C' || c == 'c': - goto yystate527 - case c >= '0' && c <= '9' || c == 'A' || c == 'B' || c >= 'D' && c <= 'Z' || c == '_' || c == 'a' || c == 'b' || c >= 'd' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate527: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'E' || c == 'e': - goto yystate528 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'D' || c >= 'F' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'd' || c >= 'f' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate528: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate529 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate529: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate530 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate530: - c = l.Next() - yyrule = 80 - l.Mark() - switch { - default: - goto yyrule80 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate531: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'R' || c == 'r': - goto yystate532 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate532: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'A' || c == 'a': - goto yystate533 - case c >= '0' && c <= '9' || c >= 'B' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate533: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'I' || c == 'i': - goto yystate534 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'H' || c >= 'J' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'h' || c >= 'j' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate534: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == 'T' || c == 't': - goto yystate535 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'S' || c >= 'U' && c <= 'Z' || c == '_' || c >= 'a' && c <= 's' || c >= 'u' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate535: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate536 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate536: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '_': - goto yystate537 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate537: - c = l.Next() - yyrule = 82 - l.Mark() - switch { - default: - goto yyrule82 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate538: - c = l.Next() - yyrule = 140 - l.Mark() - goto yyrule140 - -yystate539: - c = l.Next() - yyrule = 133 - l.Mark() - switch { - default: - goto yyrule133 - case c == '"': - goto yystate540 - case c == '<': - goto yystate541 - case c == 'R' || c == 'r': - goto yystate181 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Q' || c >= 'S' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'q' || c >= 's' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate165 - } - -yystate540: - c = l.Next() - yyrule = 146 - l.Mark() - goto yyrule146 - -yystate541: - c = l.Next() - switch { - default: - goto yyabort - case c == '<': - goto yystate542 - } - -yystate542: - c = l.Next() - switch { - default: - goto yyabort - case c == '<': - goto yystate138 - } - -yystate543: - c = l.Next() - yyrule = 130 - l.Mark() - goto yyrule130 - -yystate544: - c = l.Next() - yyrule = 129 - l.Mark() - switch { - default: - goto yyrule129 - case c == '=': - goto yystate545 - case c == '|': - goto yystate546 - } - -yystate545: - c = l.Next() - yyrule = 101 - l.Mark() - goto yyrule101 - -yystate546: - c = l.Next() - yyrule = 99 - l.Mark() - goto yyrule99 - -yystate547: - c = l.Next() - yyrule = 131 - l.Mark() - goto yyrule131 - - goto yystate548 // silence unused label error -yystate548: - c = l.Next() -yystart548: - switch { - default: - goto yyabort - case c == '"': - goto yystate550 - case c == '$': - goto yystate551 - case c == '{': - goto yystate554 - case c >= '\x01' && c <= '!' || c == '#' || c >= '%' && c <= 'z' || c >= '|' && c <= 'ÿ': - goto yystate549 - } - -yystate549: - c = l.Next() - yyrule = 151 - l.Mark() - goto yyrule151 - -yystate550: - c = l.Next() - yyrule = 147 - l.Mark() - goto yyrule147 - -yystate551: - c = l.Next() - yyrule = 151 - l.Mark() - switch { - default: - goto yyrule151 - case c == '{': - goto yystate553 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate552 - } - -yystate552: - c = l.Next() - yyrule = 150 - l.Mark() - switch { - default: - goto yyrule150 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate552 - } - -yystate553: - c = l.Next() - yyrule = 149 - l.Mark() - goto yyrule149 - -yystate554: - c = l.Next() - yyrule = 151 - l.Mark() - switch { - default: - goto yyrule151 - case c == '$': - goto yystate555 - } - -yystate555: - c = l.Next() - yyrule = 148 - l.Mark() - goto yyrule148 - - goto yystate556 // silence unused label error -yystate556: - c = l.Next() -yystart556: - switch { - default: - goto yyabort - case c == '$': - goto yystate558 - case c == '-': - goto yystate560 - case c == '[': - goto yystate565 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate563 - case c >= '\x01' && c <= '#' || c >= '%' && c <= ',' || c >= '.' && c <= '@' || c >= '\\' && c <= '^' || c == '`' || c >= '{' && c <= '~': - goto yystate557 - } - -yystate557: - c = l.Next() - yyrule = 158 - l.Mark() - goto yyrule158 - -yystate558: - c = l.Next() - yyrule = 158 - l.Mark() - switch { - default: - goto yyrule158 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate559 - } - -yystate559: - c = l.Next() - yyrule = 154 - l.Mark() - switch { - default: - goto yyrule154 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate559 - } - -yystate560: - c = l.Next() - yyrule = 158 - l.Mark() - switch { - default: - goto yyrule158 - case c == '>': - goto yystate561 - } - -yystate561: - c = l.Next() - switch { - default: - goto yyabort - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate562 - } - -yystate562: - c = l.Next() - yyrule = 155 - l.Mark() - switch { - default: - goto yyrule155 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate562 - } - -yystate563: - c = l.Next() - yyrule = 156 - l.Mark() - switch { - default: - goto yyrule156 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate564 - } - -yystate564: - c = l.Next() - yyrule = 156 - l.Mark() - switch { - default: - goto yyrule156 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate564 - } - -yystate565: - c = l.Next() - yyrule = 157 - l.Mark() - goto yyrule157 - - goto yystate566 // silence unused label error -yystate566: - c = l.Next() -yystart566: - switch { - default: - goto yyabort - case c == '!' || c == '%' || c == '&' || c >= '(' && c <= '/' || c >= ':' && c <= '@' || c == '[' || c == '^' || c == '|' || c == '~': - goto yystate570 - case c == '$': - goto yystate571 - case c == '0': - goto yystate573 - case c == '\n': - goto yystate569 - case c == '\t' || c == '\r' || c == ' ' || c == '#' || c == '\'' || c == '\\': - goto yystate568 - case c == ']': - goto yystate582 - case c >= '1' && c <= '9': - goto yystate579 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate580 - case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c == '"' || c == '`' || c == '{' || c == '}': - goto yystate567 - } - -yystate567: - c = l.Next() - yyrule = 165 - l.Mark() - goto yyrule165 - -yystate568: - c = l.Next() - yyrule = 163 - l.Mark() - goto yyrule163 - -yystate569: - c = l.Next() - yyrule = 163 - l.Mark() - goto yyrule163 - -yystate570: - c = l.Next() - yyrule = 164 - l.Mark() - goto yyrule164 - -yystate571: - c = l.Next() - yyrule = 164 - l.Mark() - switch { - default: - goto yyrule164 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate572 - } - -yystate572: - c = l.Next() - yyrule = 160 - l.Mark() - switch { - default: - goto yyrule160 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate572 - } - -yystate573: - c = l.Next() - yyrule = 159 - l.Mark() - switch { - default: - goto yyrule159 - case c == 'B' || c == 'b': - goto yystate575 - case c == 'X' || c == 'x': - goto yystate577 - case c >= '0' && c <= '9': - goto yystate574 - } - -yystate574: - c = l.Next() - yyrule = 159 - l.Mark() - switch { - default: - goto yyrule159 - case c >= '0' && c <= '9': - goto yystate574 - } - -yystate575: - c = l.Next() - switch { - default: - goto yyabort - case c == '0' || c == '1': - goto yystate576 - } - -yystate576: - c = l.Next() - yyrule = 159 - l.Mark() - switch { - default: - goto yyrule159 - case c == '0' || c == '1': - goto yystate576 - } - -yystate577: - c = l.Next() - switch { - default: - goto yyabort - case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': - goto yystate578 - } - -yystate578: - c = l.Next() - yyrule = 159 - l.Mark() - switch { - default: - goto yyrule159 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f': - goto yystate578 - } - -yystate579: - c = l.Next() - yyrule = 159 - l.Mark() - switch { - default: - goto yyrule159 - case c >= '0' && c <= '9': - goto yystate574 - } - -yystate580: - c = l.Next() - yyrule = 161 - l.Mark() - switch { - default: - goto yyrule161 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate581 - } - -yystate581: - c = l.Next() - yyrule = 161 - l.Mark() - switch { - default: - goto yyrule161 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate581 - } - -yystate582: - c = l.Next() - yyrule = 162 - l.Mark() - goto yyrule162 - - goto yystate583 // silence unused label error -yystate583: - c = l.Next() -yystart583: - switch { - default: - goto yyabort - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate585 - case c >= '\x01' && c <= '\t' || c >= '\v' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '~': - goto yystate584 - } - -yystate584: - c = l.Next() - yyrule = 167 - l.Mark() - goto yyrule167 - -yystate585: - c = l.Next() - yyrule = 167 - l.Mark() - switch { - default: - goto yyrule167 - case c == '[' || c == '}': - goto yystate587 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate586 - } - -yystate586: - c = l.Next() - switch { - default: - goto yyabort - case c == '[' || c == '}': - goto yystate587 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate586 - } - -yystate587: - c = l.Next() - yyrule = 166 - l.Mark() - goto yyrule166 - - goto yystate588 // silence unused label error -yystate588: - c = l.Next() -yystart588: - switch { - default: - goto yyabort - case c == '-': - goto yystate592 - case c == '\n': - goto yystate591 - case c == '\t' || c == '\r' || c == ' ': - goto yystate590 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate594 - case c >= '\x01' && c <= '\b' || c == '\v' || c == '\f' || c >= '\x0e' && c <= '\x1f' || c >= '!' && c <= ',' || c >= '.' && c <= '@' || c >= '[' && c <= '^' || c == '`' || c >= '{' && c <= '~': - goto yystate589 - } - -yystate589: - c = l.Next() - yyrule = 138 - l.Mark() - goto yyrule138 - -yystate590: - c = l.Next() - yyrule = 135 - l.Mark() - switch { - default: - goto yyrule135 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate591 - } - -yystate591: - c = l.Next() - yyrule = 135 - l.Mark() - switch { - default: - goto yyrule135 - case c == '\t' || c == '\n' || c == '\r' || c == ' ': - goto yystate591 - } - -yystate592: - c = l.Next() - yyrule = 138 - l.Mark() - switch { - default: - goto yyrule138 - case c == '>': - goto yystate593 - } - -yystate593: - c = l.Next() - yyrule = 136 - l.Mark() - goto yyrule136 - -yystate594: - c = l.Next() - yyrule = 137 - l.Mark() - switch { - default: - goto yyrule137 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate595 - } - -yystate595: - c = l.Next() - yyrule = 137 - l.Mark() - switch { - default: - goto yyrule137 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate595 - } - - goto yystate596 // silence unused label error -yystate596: - c = l.Next() -yystart596: - switch { - default: - goto yyabort - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate597 - } - -yystate597: - c = l.Next() - yyrule = 145 - l.Mark() - switch { - default: - goto yyrule145 - case c == ';': - goto yystate598 - case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate597 - } - -yystate598: - c = l.Next() - yyrule = 144 - l.Mark() - goto yyrule144 - - goto yystate599 // silence unused label error -yystate599: - c = l.Next() -yystart599: - switch { - default: - goto yyabort - case c >= '\x01' && c <= 'ÿ': - goto yystate600 - } - -yystate600: - c = l.Next() - yyrule = 143 - l.Mark() - goto yyrule143 - - goto yystate601 // silence unused label error -yystate601: - c = l.Next() -yystart601: - switch { - default: - goto yyabort - case c == '$': - goto yystate603 - case c == '{': - goto yystate604 - case c >= '\x01' && c <= '#' || c >= '%' && c <= 'z' || c >= '|' && c <= 'ÿ': - goto yystate602 - } - -yystate602: - c = l.Next() - yyrule = 153 - l.Mark() - goto yyrule153 - -yystate603: - c = l.Next() - yyrule = 153 - l.Mark() - switch { - default: - goto yyrule153 - case c == '{': - goto yystate553 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate552 - } - -yystate604: - c = l.Next() - yyrule = 153 - l.Mark() - switch { - default: - goto yyrule153 - case c == '$': - goto yystate555 - } - - goto yystate605 // silence unused label error -yystate605: - c = l.Next() -yystart605: - switch { - default: - goto yyabort - case c == '$': - goto yystate607 - case c == '`': - goto yystate608 - case c == '{': - goto yystate609 - case c >= '\x01' && c <= '#' || c >= '%' && c <= '_' || c >= 'a' && c <= 'z' || c >= '|' && c <= 'ÿ': - goto yystate606 - } - -yystate606: - c = l.Next() - yyrule = 152 - l.Mark() - goto yyrule152 - -yystate607: - c = l.Next() - yyrule = 152 - l.Mark() - switch { - default: - goto yyrule152 - case c == '{': - goto yystate553 - case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ': - goto yystate552 - } - -yystate608: - c = l.Next() - yyrule = 141 - l.Mark() - goto yyrule141 - -yystate609: - c = l.Next() - yyrule = 152 - l.Mark() - switch { - default: - goto yyrule152 - case c == '$': - goto yystate555 - } - - goto yystate610 // silence unused label error -yystate610: - c = l.Next() -yystart610: - switch { - default: - goto yyabort - case c >= '\x01' && c <= 'ÿ': - goto yystate611 - } - -yystate611: - c = l.Next() - yyrule = 168 - l.Mark() - goto yyrule168 - -yyrule1: // [ \t\n\r]+ - { - l.addFreeFloating(freefloating.WhiteSpaceType, l.Token()) - goto yystate0 - } -yyrule2: // . + // line scanner/scanner.go:79 { + var _widec int16 + if (lex.p) == (lex.pe) { + goto _test_eof + } + goto _resume - tb := []lex.Char{} - for { - if c == -1 { - tb = l.Token() - break + _again: + switch lex.cs { + case 111: + goto st111 + case 112: + goto st112 + case 1: + goto st1 + case 113: + goto st113 + case 114: + goto st114 + case 115: + goto st115 + case 116: + goto st116 + 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 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: + goto st125 + case 126: + goto st126 + case 127: + goto st127 + case 7: + goto st7 + case 8: + goto st8 + case 9: + goto st9 + case 10: + goto st10 + 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: + goto st14 + case 15: + goto st15 + case 16: + goto st16 + case 17: + goto st17 + case 18: + goto st18 + case 19: + goto st19 + case 20: + goto st20 + case 21: + goto st21 + case 22: + goto st22 + case 23: + goto st23 + case 24: + goto st24 + case 25: + goto st25 + case 26: + goto st26 + case 27: + goto st27 + case 28: + goto st28 + case 29: + goto st29 + case 30: + goto st30 + case 31: + goto st31 + case 32: + goto st32 + case 33: + goto st33 + case 34: + goto st34 + case 35: + goto st35 + case 36: + goto st36 + case 37: + goto st37 + case 38: + goto st38 + case 39: + goto st39 + case 40: + goto st40 + case 41: + goto st41 + case 42: + goto st42 + case 43: + goto st43 + case 44: + goto st44 + case 45: + goto st45 + case 46: + goto st46 + case 47: + goto st47 + case 48: + goto st48 + case 49: + goto st49 + case 50: + goto st50 + case 51: + goto st51 + case 52: + goto st52 + case 53: + goto st53 + case 54: + goto st54 + case 55: + goto st55 + case 56: + goto st56 + case 57: + goto st57 + case 58: + goto st58 + case 59: + goto st59 + case 60: + goto st60 + case 61: + goto st61 + case 62: + goto st62 + case 63: + goto st63 + case 64: + goto st64 + case 65: + goto st65 + case 66: + goto st66 + case 136: + goto st136 + case 137: + goto st137 + case 138: + goto st138 + case 139: + goto st139 + 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 70: + goto st70 + case 143: + goto st143 + case 71: + goto st71 + case 72: + goto st72 + case 73: + goto st73 + case 144: + goto st144 + case 145: + goto st145 + case 146: + goto st146 + case 74: + goto st74 + case 75: + goto st75 + case 147: + goto st147 + 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: + goto st157 + case 158: + goto st158 + case 159: + goto st159 + case 160: + goto st160 + case 161: + goto st161 + case 162: + goto st162 + case 163: + goto st163 + case 90: + goto st90 + case 164: + goto st164 + case 165: + goto st165 + case 166: + goto st166 + case 167: + goto st167 + case 168: + goto st168 + case 169: + goto st169 + case 170: + goto st170 + case 171: + goto st171 + case 172: + goto st172 + case 173: + goto st173 + case 174: + goto st174 + case 175: + goto st175 + case 176: + goto st176 + case 177: + goto st177 + case 91: + goto st91 + case 92: + goto st92 + case 178: + goto st178 + case 179: + goto st179 + case 180: + goto st180 + case 181: + goto st181 + case 182: + goto st182 + case 183: + goto st183 + case 184: + goto st184 + case 185: + goto st185 + case 186: + goto st186 + case 187: + goto st187 + case 188: + goto st188 + case 189: + goto st189 + case 190: + goto st190 + case 191: + goto st191 + case 192: + goto st192 + case 193: + goto st193 + case 194: + goto st194 + case 195: + goto st195 + case 196: + goto st196 + case 197: + goto st197 + case 198: + goto st198 + case 199: + goto st199 + case 200: + goto st200 + case 201: + goto st201 + case 202: + goto st202 + case 203: + goto st203 + case 204: + goto st204 + case 205: + goto st205 + case 206: + goto st206 + case 207: + goto st207 + case 208: + goto st208 + case 209: + goto st209 + case 210: + goto st210 + case 211: + goto st211 + case 212: + goto st212 + case 213: + goto st213 + case 214: + goto st214 + case 215: + goto st215 + case 216: + goto st216 + case 217: + goto st217 + case 218: + goto st218 + case 219: + goto st219 + case 220: + goto st220 + case 221: + goto st221 + case 222: + goto st222 + case 223: + goto st223 + case 224: + goto st224 + case 225: + goto st225 + case 226: + goto st226 + case 227: + goto st227 + case 228: + goto st228 + case 229: + goto st229 + case 230: + goto st230 + case 231: + goto st231 + case 232: + goto st232 + case 233: + goto st233 + case 234: + goto st234 + case 235: + goto st235 + case 236: + goto st236 + case 237: + goto st237 + case 238: + goto st238 + case 239: + goto st239 + case 240: + goto st240 + case 241: + goto st241 + case 242: + goto st242 + case 243: + goto st243 + case 244: + goto st244 + case 245: + goto st245 + case 246: + goto st246 + case 247: + goto st247 + case 248: + goto st248 + case 249: + goto st249 + case 250: + goto st250 + case 251: + goto st251 + case 252: + goto st252 + case 253: + goto st253 + case 254: + goto st254 + case 255: + goto st255 + case 256: + goto st256 + case 257: + goto st257 + case 258: + goto st258 + case 259: + goto st259 + case 260: + goto st260 + case 261: + goto st261 + case 262: + goto st262 + case 263: + goto st263 + case 264: + goto st264 + case 265: + goto st265 + case 266: + goto st266 + case 267: + goto st267 + case 268: + goto st268 + case 269: + goto st269 + case 270: + goto st270 + case 271: + goto st271 + case 272: + goto st272 + case 273: + goto st273 + case 274: + goto st274 + case 275: + goto st275 + case 276: + goto st276 + case 277: + goto st277 + case 278: + goto st278 + case 279: + goto st279 + case 280: + goto st280 + case 281: + goto st281 + case 282: + goto st282 + case 283: + goto st283 + case 284: + goto st284 + case 285: + goto st285 + case 286: + goto st286 + case 287: + goto st287 + case 288: + goto st288 + case 289: + goto st289 + case 290: + goto st290 + case 291: + goto st291 + case 292: + goto st292 + case 293: + goto st293 + case 294: + goto st294 + case 295: + goto st295 + case 296: + goto st296 + case 297: + goto st297 + case 298: + goto st298 + case 299: + goto st299 + case 300: + goto st300 + case 301: + goto st301 + case 302: + goto st302 + case 303: + goto st303 + case 304: + goto st304 + case 305: + goto st305 + case 306: + goto st306 + case 307: + goto st307 + case 308: + goto st308 + case 309: + goto st309 + case 310: + goto st310 + case 311: + goto st311 + case 312: + goto st312 + case 313: + goto st313 + case 314: + goto st314 + case 315: + goto st315 + case 316: + goto st316 + case 317: + goto st317 + case 318: + goto st318 + case 319: + goto st319 + case 320: + goto st320 + case 321: + goto st321 + case 322: + goto st322 + case 323: + goto st323 + case 324: + goto st324 + case 325: + goto st325 + case 326: + goto st326 + case 327: + goto st327 + case 328: + goto st328 + case 329: + goto st329 + case 330: + goto st330 + case 331: + goto st331 + case 332: + goto st332 + case 333: + goto st333 + case 334: + goto st334 + case 335: + goto st335 + case 336: + goto st336 + case 337: + goto st337 + case 338: + goto st338 + case 339: + goto st339 + case 340: + goto st340 + case 341: + goto st341 + case 342: + goto st342 + case 343: + goto st343 + case 344: + goto st344 + case 345: + goto st345 + case 346: + goto st346 + case 347: + goto st347 + case 348: + goto st348 + case 349: + goto st349 + case 350: + goto st350 + case 351: + goto st351 + case 352: + goto st352 + case 353: + goto st353 + case 354: + goto st354 + case 355: + goto st355 + case 356: + goto st356 + case 357: + goto st357 + case 358: + goto st358 + case 359: + goto st359 + case 360: + goto st360 + case 361: + goto st361 + case 362: + goto st362 + case 363: + goto st363 + case 364: + goto st364 + case 365: + goto st365 + case 366: + goto st366 + case 367: + goto st367 + case 368: + goto st368 + case 369: + goto st369 + case 370: + goto st370 + case 371: + goto st371 + case 372: + goto st372 + case 373: + goto st373 + case 374: + goto st374 + case 375: + goto st375 + case 376: + goto st376 + case 377: + goto st377 + case 378: + goto st378 + case 379: + goto st379 + case 380: + goto st380 + case 381: + goto st381 + case 382: + goto st382 + case 383: + goto st383 + case 384: + goto st384 + case 385: + goto st385 + case 386: + goto st386 + case 387: + goto st387 + case 388: + goto st388 + case 389: + goto st389 + case 390: + goto st390 + case 391: + goto st391 + case 392: + goto st392 + case 393: + goto st393 + case 394: + goto st394 + case 395: + goto st395 + case 396: + 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: + goto st399 + case 400: + goto st400 + case 401: + goto st401 + case 402: + goto st402 + case 403: + goto st403 + case 404: + goto st404 + case 405: + goto st405 + case 406: + goto st406 + case 407: + goto st407 + case 408: + goto st408 + case 409: + goto st409 + case 410: + goto st410 + case 411: + goto st411 + case 412: + goto st412 + case 413: + goto st413 + case 414: + goto st414 + case 415: + goto st415 + case 416: + goto st416 + case 417: + goto st417 + case 418: + goto st418 + case 419: + goto st419 + case 420: + goto st420 + case 421: + goto st421 + case 422: + goto st422 + case 423: + goto st423 + case 424: + goto st424 + case 425: + goto st425 + case 426: + goto st426 + case 427: + goto st427 + case 428: + goto st428 + case 429: + goto st429 + case 430: + goto st430 + case 431: + goto st431 + case 432: + goto st432 + case 433: + goto st433 + case 434: + goto st434 + case 435: + goto st435 + case 436: + goto st436 + case 437: + goto st437 + case 438: + goto st438 + case 439: + goto st439 + case 440: + goto st440 + case 441: + goto st441 + case 442: + goto st442 + case 443: + goto st443 + case 444: + goto st444 + case 445: + goto st445 + case 446: + goto st446 + case 447: + goto st447 + case 448: + goto st448 + case 449: + goto st449 + case 450: + goto st450 + case 451: + goto st451 + case 452: + goto st452 + case 453: + goto st453 + case 454: + goto st454 + case 455: + goto st455 + case 456: + goto st456 + case 457: + goto st457 + case 458: + goto st458 + case 459: + goto st459 + case 460: + goto st460 + case 461: + goto st461 + case 462: + goto st462 + case 463: + goto st463 + case 464: + goto st464 + case 465: + goto st465 + case 466: + goto st466 + case 467: + goto st467 + case 468: + goto st468 + case 469: + goto st469 + case 470: + goto st470 + case 99: + goto st99 + case 471: + goto st471 + case 472: + goto st472 + case 473: + goto st473 + case 474: + goto st474 + case 0: + goto st0 + case 475: + goto st475 + 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 482: + goto st482 + case 483: + goto st483 + case 484: + goto st484 + case 101: + goto st101 + case 485: + goto st485 + case 486: + goto st486 + case 487: + goto st487 + case 488: + goto st488 + case 489: + goto st489 + case 490: + goto st490 + case 102: + goto st102 + case 491: + goto st491 + case 492: + goto st492 + case 493: + goto st493 + case 494: + goto st494 + case 495: + goto st495 + case 496: + goto st496 + case 497: + goto st497 + case 498: + goto st498 + case 499: + goto st499 + case 500: + goto st500 + case 103: + goto st103 + case 501: + goto st501 + case 502: + goto st502 + case 503: + goto st503 + case 504: + goto st504 + case 505: + goto st505 + case 506: + goto st506 + case 507: + goto st507 + 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 512: + goto st512 + case 513: + goto st513 + case 107: + goto st107 + case 514: + goto st514 + case 515: + goto st515 + 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) { + goto _test_eof + } + _resume: + switch lex.cs { + case 111: + goto st_case_111 + case 112: + goto st_case_112 + case 1: + goto st_case_1 + case 113: + goto st_case_113 + case 114: + goto st_case_114 + case 115: + goto st_case_115 + case 116: + goto st_case_116 + 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 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: + goto st_case_125 + case 126: + 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 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: + goto st_case_14 + case 15: + goto st_case_15 + case 16: + goto st_case_16 + case 17: + goto st_case_17 + case 18: + goto st_case_18 + case 19: + goto st_case_19 + case 20: + goto st_case_20 + case 21: + goto st_case_21 + case 22: + goto st_case_22 + case 23: + goto st_case_23 + case 24: + goto st_case_24 + case 25: + goto st_case_25 + case 26: + goto st_case_26 + case 27: + goto st_case_27 + case 28: + goto st_case_28 + case 29: + goto st_case_29 + case 30: + goto st_case_30 + case 31: + goto st_case_31 + case 32: + goto st_case_32 + case 33: + goto st_case_33 + case 34: + goto st_case_34 + case 35: + goto st_case_35 + case 36: + goto st_case_36 + case 37: + goto st_case_37 + case 38: + goto st_case_38 + case 39: + goto st_case_39 + case 40: + goto st_case_40 + case 41: + goto st_case_41 + case 42: + goto st_case_42 + case 43: + goto st_case_43 + case 44: + goto st_case_44 + case 45: + goto st_case_45 + case 46: + goto st_case_46 + case 47: + goto st_case_47 + case 48: + goto st_case_48 + case 49: + goto st_case_49 + case 50: + goto st_case_50 + case 51: + goto st_case_51 + case 52: + goto st_case_52 + case 53: + goto st_case_53 + case 54: + goto st_case_54 + case 55: + goto st_case_55 + case 56: + goto st_case_56 + case 57: + goto st_case_57 + case 58: + goto st_case_58 + case 59: + goto st_case_59 + case 60: + goto st_case_60 + case 61: + goto st_case_61 + case 62: + goto st_case_62 + case 63: + goto st_case_63 + case 64: + goto st_case_64 + case 65: + goto st_case_65 + case 66: + goto st_case_66 + case 136: + goto st_case_136 + case 137: + goto st_case_137 + case 138: + goto st_case_138 + case 139: + goto st_case_139 + 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 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 145: + goto st_case_145 + case 146: + goto st_case_146 + case 74: + goto st_case_74 + case 75: + goto st_case_75 + case 147: + goto st_case_147 + 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: + goto st_case_157 + case 158: + goto st_case_158 + case 159: + goto st_case_159 + case 160: + goto st_case_160 + case 161: + goto st_case_161 + case 162: + goto st_case_162 + case 163: + goto st_case_163 + case 90: + goto st_case_90 + case 164: + goto st_case_164 + case 165: + goto st_case_165 + case 166: + goto st_case_166 + case 167: + goto st_case_167 + case 168: + goto st_case_168 + case 169: + goto st_case_169 + case 170: + goto st_case_170 + case 171: + goto st_case_171 + case 172: + goto st_case_172 + case 173: + goto st_case_173 + case 174: + goto st_case_174 + case 175: + goto st_case_175 + case 176: + 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: + goto st_case_179 + case 180: + goto st_case_180 + case 181: + goto st_case_181 + case 182: + goto st_case_182 + case 183: + goto st_case_183 + case 184: + goto st_case_184 + case 185: + goto st_case_185 + case 186: + goto st_case_186 + case 187: + goto st_case_187 + case 188: + goto st_case_188 + case 189: + goto st_case_189 + case 190: + goto st_case_190 + case 191: + goto st_case_191 + case 192: + goto st_case_192 + case 193: + goto st_case_193 + case 194: + goto st_case_194 + case 195: + goto st_case_195 + case 196: + goto st_case_196 + case 197: + goto st_case_197 + case 198: + goto st_case_198 + case 199: + goto st_case_199 + case 200: + goto st_case_200 + case 201: + goto st_case_201 + case 202: + goto st_case_202 + case 203: + goto st_case_203 + case 204: + goto st_case_204 + case 205: + goto st_case_205 + case 206: + goto st_case_206 + case 207: + goto st_case_207 + case 208: + goto st_case_208 + case 209: + goto st_case_209 + case 210: + goto st_case_210 + case 211: + goto st_case_211 + case 212: + goto st_case_212 + case 213: + goto st_case_213 + case 214: + goto st_case_214 + case 215: + goto st_case_215 + case 216: + goto st_case_216 + case 217: + goto st_case_217 + case 218: + goto st_case_218 + case 219: + goto st_case_219 + case 220: + goto st_case_220 + case 221: + goto st_case_221 + case 222: + goto st_case_222 + case 223: + goto st_case_223 + case 224: + goto st_case_224 + case 225: + goto st_case_225 + case 226: + goto st_case_226 + case 227: + goto st_case_227 + case 228: + goto st_case_228 + case 229: + goto st_case_229 + case 230: + goto st_case_230 + case 231: + goto st_case_231 + case 232: + goto st_case_232 + case 233: + goto st_case_233 + case 234: + goto st_case_234 + case 235: + goto st_case_235 + case 236: + goto st_case_236 + case 237: + goto st_case_237 + case 238: + goto st_case_238 + case 239: + goto st_case_239 + case 240: + goto st_case_240 + case 241: + goto st_case_241 + case 242: + goto st_case_242 + case 243: + goto st_case_243 + case 244: + goto st_case_244 + case 245: + goto st_case_245 + case 246: + goto st_case_246 + case 247: + goto st_case_247 + case 248: + goto st_case_248 + case 249: + goto st_case_249 + case 250: + goto st_case_250 + case 251: + goto st_case_251 + case 252: + goto st_case_252 + case 253: + goto st_case_253 + case 254: + goto st_case_254 + case 255: + goto st_case_255 + case 256: + goto st_case_256 + case 257: + goto st_case_257 + case 258: + goto st_case_258 + case 259: + goto st_case_259 + case 260: + goto st_case_260 + case 261: + goto st_case_261 + case 262: + goto st_case_262 + case 263: + goto st_case_263 + case 264: + goto st_case_264 + case 265: + goto st_case_265 + case 266: + goto st_case_266 + case 267: + goto st_case_267 + case 268: + goto st_case_268 + case 269: + goto st_case_269 + case 270: + goto st_case_270 + case 271: + goto st_case_271 + case 272: + goto st_case_272 + case 273: + goto st_case_273 + case 274: + goto st_case_274 + case 275: + goto st_case_275 + case 276: + goto st_case_276 + case 277: + goto st_case_277 + case 278: + goto st_case_278 + case 279: + goto st_case_279 + case 280: + goto st_case_280 + case 281: + goto st_case_281 + case 282: + goto st_case_282 + case 283: + goto st_case_283 + case 284: + goto st_case_284 + case 285: + goto st_case_285 + case 286: + goto st_case_286 + case 287: + goto st_case_287 + case 288: + goto st_case_288 + case 289: + goto st_case_289 + case 290: + goto st_case_290 + case 291: + goto st_case_291 + case 292: + goto st_case_292 + case 293: + goto st_case_293 + case 294: + goto st_case_294 + case 295: + goto st_case_295 + case 296: + goto st_case_296 + case 297: + goto st_case_297 + case 298: + goto st_case_298 + case 299: + goto st_case_299 + case 300: + goto st_case_300 + case 301: + goto st_case_301 + case 302: + goto st_case_302 + case 303: + goto st_case_303 + case 304: + goto st_case_304 + case 305: + goto st_case_305 + case 306: + goto st_case_306 + case 307: + goto st_case_307 + case 308: + goto st_case_308 + case 309: + goto st_case_309 + case 310: + goto st_case_310 + case 311: + goto st_case_311 + case 312: + goto st_case_312 + case 313: + goto st_case_313 + case 314: + goto st_case_314 + case 315: + goto st_case_315 + case 316: + goto st_case_316 + case 317: + goto st_case_317 + case 318: + goto st_case_318 + case 319: + goto st_case_319 + case 320: + goto st_case_320 + case 321: + goto st_case_321 + case 322: + goto st_case_322 + case 323: + goto st_case_323 + case 324: + goto st_case_324 + case 325: + goto st_case_325 + case 326: + goto st_case_326 + case 327: + goto st_case_327 + case 328: + goto st_case_328 + case 329: + goto st_case_329 + case 330: + goto st_case_330 + case 331: + goto st_case_331 + case 332: + goto st_case_332 + case 333: + goto st_case_333 + case 334: + goto st_case_334 + case 335: + goto st_case_335 + case 336: + goto st_case_336 + case 337: + goto st_case_337 + case 338: + goto st_case_338 + case 339: + goto st_case_339 + case 340: + goto st_case_340 + case 341: + goto st_case_341 + case 342: + goto st_case_342 + case 343: + goto st_case_343 + case 344: + goto st_case_344 + case 345: + goto st_case_345 + case 346: + goto st_case_346 + case 347: + goto st_case_347 + case 348: + goto st_case_348 + case 349: + goto st_case_349 + case 350: + goto st_case_350 + case 351: + goto st_case_351 + case 352: + goto st_case_352 + case 353: + goto st_case_353 + case 354: + goto st_case_354 + case 355: + goto st_case_355 + case 356: + goto st_case_356 + case 357: + goto st_case_357 + case 358: + goto st_case_358 + case 359: + goto st_case_359 + case 360: + goto st_case_360 + case 361: + goto st_case_361 + case 362: + goto st_case_362 + case 363: + goto st_case_363 + case 364: + goto st_case_364 + case 365: + goto st_case_365 + case 366: + goto st_case_366 + case 367: + goto st_case_367 + case 368: + goto st_case_368 + case 369: + goto st_case_369 + case 370: + goto st_case_370 + case 371: + goto st_case_371 + case 372: + goto st_case_372 + case 373: + goto st_case_373 + case 374: + goto st_case_374 + case 375: + goto st_case_375 + case 376: + goto st_case_376 + case 377: + goto st_case_377 + case 378: + goto st_case_378 + case 379: + goto st_case_379 + case 380: + goto st_case_380 + case 381: + goto st_case_381 + case 382: + goto st_case_382 + case 383: + goto st_case_383 + case 384: + goto st_case_384 + case 385: + goto st_case_385 + case 386: + goto st_case_386 + case 387: + goto st_case_387 + case 388: + goto st_case_388 + case 389: + goto st_case_389 + case 390: + goto st_case_390 + case 391: + goto st_case_391 + case 392: + goto st_case_392 + case 393: + goto st_case_393 + case 394: + goto st_case_394 + case 395: + goto st_case_395 + case 396: + 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: + goto st_case_399 + case 400: + goto st_case_400 + case 401: + goto st_case_401 + case 402: + goto st_case_402 + case 403: + goto st_case_403 + case 404: + goto st_case_404 + case 405: + goto st_case_405 + case 406: + goto st_case_406 + case 407: + goto st_case_407 + case 408: + goto st_case_408 + case 409: + goto st_case_409 + case 410: + goto st_case_410 + case 411: + goto st_case_411 + case 412: + goto st_case_412 + case 413: + goto st_case_413 + case 414: + goto st_case_414 + case 415: + goto st_case_415 + case 416: + goto st_case_416 + case 417: + goto st_case_417 + case 418: + goto st_case_418 + case 419: + goto st_case_419 + case 420: + goto st_case_420 + case 421: + goto st_case_421 + case 422: + goto st_case_422 + case 423: + goto st_case_423 + case 424: + goto st_case_424 + case 425: + goto st_case_425 + case 426: + goto st_case_426 + case 427: + goto st_case_427 + case 428: + goto st_case_428 + case 429: + goto st_case_429 + case 430: + goto st_case_430 + case 431: + goto st_case_431 + case 432: + goto st_case_432 + case 433: + goto st_case_433 + case 434: + goto st_case_434 + case 435: + goto st_case_435 + case 436: + goto st_case_436 + case 437: + goto st_case_437 + case 438: + goto st_case_438 + case 439: + goto st_case_439 + case 440: + goto st_case_440 + case 441: + goto st_case_441 + case 442: + goto st_case_442 + case 443: + goto st_case_443 + case 444: + goto st_case_444 + case 445: + goto st_case_445 + case 446: + goto st_case_446 + case 447: + goto st_case_447 + case 448: + goto st_case_448 + case 449: + goto st_case_449 + case 450: + goto st_case_450 + case 451: + goto st_case_451 + case 452: + goto st_case_452 + case 453: + goto st_case_453 + case 454: + goto st_case_454 + case 455: + goto st_case_455 + case 456: + goto st_case_456 + case 457: + goto st_case_457 + case 458: + goto st_case_458 + case 459: + goto st_case_459 + case 460: + goto st_case_460 + case 461: + goto st_case_461 + case 462: + goto st_case_462 + case 463: + goto st_case_463 + case 464: + goto st_case_464 + case 465: + goto st_case_465 + case 466: + goto st_case_466 + case 467: + goto st_case_467 + case 468: + goto st_case_468 + case 469: + goto st_case_469 + case 470: + goto st_case_470 + case 99: + goto st_case_99 + case 471: + goto st_case_471 + case 472: + goto st_case_472 + case 473: + goto st_case_473 + case 474: + goto st_case_474 + case 0: + goto st_case_0 + case 475: + goto st_case_475 + 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 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: + goto st_case_486 + case 487: + goto st_case_487 + case 488: + goto st_case_488 + case 489: + goto st_case_489 + case 490: + goto st_case_490 + case 102: + goto st_case_102 + case 491: + goto st_case_491 + case 492: + goto st_case_492 + case 493: + goto st_case_493 + case 494: + goto st_case_494 + case 495: + goto st_case_495 + case 496: + goto st_case_496 + case 497: + goto st_case_497 + case 498: + goto st_case_498 + case 499: + goto st_case_499 + case 500: + goto st_case_500 + case 103: + goto st_case_103 + case 501: + goto st_case_501 + case 502: + goto st_case_502 + case 503: + goto st_case_503 + case 504: + goto st_case_504 + case 505: + goto st_case_505 + case 506: + goto st_case_506 + case 507: + goto st_case_507 + 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 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 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 = 111 + // line scanner/scanner.rl:141 + (lex.p) = (lex.te) - 1 + { + lex.cs = 114 + lex.ungetCnt(1) + } + goto _again + tr162: + lex.cs = 111 + // line scanner/scanner.rl:141 + lex.te = (lex.p) + 1 + { + lex.cs = 114 + lex.ungetCnt(1) + } + goto _again + tr164: + lex.cs = 111 + // line scanner/scanner.rl:141 + lex.te = (lex.p) + (lex.p)-- + { + lex.cs = 114 + lex.ungetCnt(1) + } + goto _again + tr165: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:138 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + } + goto st111 + st111: + // line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof111 + } + st_case_111: + // line NONE:1 + lex.ts = (lex.p) + + // line scanner/scanner.go:2263 + if lex.data[(lex.p)] == 35 { + goto tr163 + } + goto tr162 + tr163: + // line NONE:1 + lex.te = (lex.p) + 1 + + goto st112 + st112: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof112 + } + st_case_112: + // line scanner/scanner.go:2278 + if lex.data[(lex.p)] == 33 { + goto st1 + } + 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:154 + (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:158 + 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:148 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetStr("<") + lex.setTokenPosition(token) + tok = T_INLINE_HTML + { + (lex.p)++ + lex.cs = 114 + goto _out } - if '?' == rune(c) { - tb = l.Token() - if len(tb) < 2 || tb[len(tb)-1].Rune != '<' { - c = l.Next() - continue + } + goto st114 + tr171: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:148 + 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:154 + 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:163 + 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:158 + 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 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 112: + goto st2 + } + goto tr176 + st2: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof2 + } + st_case_2: + switch lex.data[(lex.p)] { + case 72: + goto st3 + case 104: + goto st3 + } + goto tr3 + st3: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof3 + } + st_case_3: + switch lex.data[(lex.p)] { + case 80: + goto st4 + case 112: + goto st4 + } + goto tr3 + st4: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof4 + } + st_case_4: + switch lex.data[(lex.p)] { + case 9: + goto tr6 + case 10: + goto st120 + case 13: + goto st5 + case 32: + goto tr6 + } + 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:172 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st121 + tr11: + lex.cs = 121 + // line NONE:1 + switch lex.act { + case 10: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_DNUMBER + { + (lex.p)++ + goto _out } - tb = l.ungetChars(1) - break } - c = l.Next() - } - lval.Token(l.createToken(tb)) - return int(T_INLINE_HTML) - } -yyrule3: // \<\?php([ \t]|{NEW_LINE}) - { - l.addFreeFloating(freefloating.TokenType, l.Token()[:5]) - l.Begin(PHP) - l.ungetChars(len(l.Token()) - 5) - goto yystate0 - } -yyrule4: // \<\? - { - l.addFreeFloating(freefloating.TokenType, l.Token()) - l.Begin(PHP) - goto yystate0 - } -yyrule5: // \<\?= - { - l.Begin(PHP) - lval.Token(l.createToken(l.Token())) - return int(T_ECHO) - goto yystate0 - } -yyrule6: // [ \t\n\r]+ - { - l.addFreeFloating(freefloating.WhiteSpaceType, l.Token()) - goto yystate0 - } -yyrule7: // [;][ \t\n\r]*\?\>{NEW_LINE}? - { - l.Begin(INITIAL) - lval.Token(l.createToken(l.Token())) - return Rune2Class(';') - goto yystate0 - } -yyrule8: // \?\>{NEW_LINE}? - { - l.Begin(INITIAL) - lval.Token(l.createToken(l.Token())) - return Rune2Class(';') - goto yystate0 - } -yyrule9: // {DNUM}|{EXPONENT_DNUM} - { - lval.Token(l.createToken(l.Token())) - return int(T_DNUMBER) - goto yystate0 - } -yyrule10: // {BNUM} - { + case 11: + { + (lex.p) = (lex.te) - 1 - tb := l.Token() - i := 2 - BNUMFOR: - for { - if i > len(tb)-1 { - break BNUMFOR - } - switch tb[i].Rune { - case '0': - i++ - default: - break BNUMFOR - } - } - if len(tb)-i < 64 { - lval.Token(l.createToken(l.Token())) - return int(T_LNUMBER) - } else { - lval.Token(l.createToken(l.Token())) - return int(T_DNUMBER) - } - goto yystate0 - } -yyrule11: // {LNUM} - { + s := strings.Replace(string(lex.data[lex.ts+2:lex.te]), "_", "", -1) + _, err := strconv.ParseInt(s, 2, 0) - if len(l.Token()) < 20 { - lval.Token(l.createToken(l.Token())) - return int(T_LNUMBER) - } else { - lval.Token(l.createToken(l.Token())) - return int(T_DNUMBER) - } - goto yystate0 - } -yyrule12: // {HNUM} - { - - tb := l.Token() - i := 2 - HNUMFOR: - for { - if i > len(tb)-1 { - break HNUMFOR - } - switch tb[i].Rune { - case '0': - i++ - default: - break HNUMFOR - } - } - length := len(tb) - i - if length < 16 || (length == 16 && tb[i].Rune <= '7') { - lval.Token(l.createToken(l.Token())) - return int(T_LNUMBER) - } else { - lval.Token(l.createToken(l.Token())) - return int(T_DNUMBER) - } - goto yystate0 - } -yyrule13: // abstract - { - lval.Token(l.createToken(l.Token())) - return int(T_ABSTRACT) - goto yystate0 - } -yyrule14: // array - { - lval.Token(l.createToken(l.Token())) - return int(T_ARRAY) - goto yystate0 - } -yyrule15: // as - { - lval.Token(l.createToken(l.Token())) - return int(T_AS) - goto yystate0 - } -yyrule16: // break - { - lval.Token(l.createToken(l.Token())) - return int(T_BREAK) - goto yystate0 - } -yyrule17: // callable - { - lval.Token(l.createToken(l.Token())) - return int(T_CALLABLE) - goto yystate0 - } -yyrule18: // case - { - lval.Token(l.createToken(l.Token())) - return int(T_CASE) - goto yystate0 - } -yyrule19: // catch - { - lval.Token(l.createToken(l.Token())) - return int(T_CATCH) - goto yystate0 - } -yyrule20: // class - { - lval.Token(l.createToken(l.Token())) - return int(T_CLASS) - goto yystate0 - } -yyrule21: // clone - { - lval.Token(l.createToken(l.Token())) - return int(T_CLONE) - goto yystate0 - } -yyrule22: // const - { - lval.Token(l.createToken(l.Token())) - return int(T_CONST) - goto yystate0 - } -yyrule23: // continue - { - lval.Token(l.createToken(l.Token())) - return int(T_CONTINUE) - goto yystate0 - } -yyrule24: // declare - { - lval.Token(l.createToken(l.Token())) - return int(T_DECLARE) - goto yystate0 - } -yyrule25: // default - { - lval.Token(l.createToken(l.Token())) - return int(T_DEFAULT) - goto yystate0 - } -yyrule26: // do - { - lval.Token(l.createToken(l.Token())) - return int(T_DO) - goto yystate0 - } -yyrule27: // echo - { - lval.Token(l.createToken(l.Token())) - return int(T_ECHO) - goto yystate0 - } -yyrule28: // else - { - lval.Token(l.createToken(l.Token())) - return int(T_ELSE) - goto yystate0 - } -yyrule29: // elseif - { - lval.Token(l.createToken(l.Token())) - return int(T_ELSEIF) - goto yystate0 - } -yyrule30: // empty - { - lval.Token(l.createToken(l.Token())) - return int(T_EMPTY) - goto yystate0 - } -yyrule31: // enddeclare - { - lval.Token(l.createToken(l.Token())) - return int(T_ENDDECLARE) - goto yystate0 - } -yyrule32: // endfor - { - lval.Token(l.createToken(l.Token())) - return int(T_ENDFOR) - goto yystate0 - } -yyrule33: // endforeach - { - lval.Token(l.createToken(l.Token())) - return int(T_ENDFOREACH) - goto yystate0 - } -yyrule34: // endif - { - lval.Token(l.createToken(l.Token())) - return int(T_ENDIF) - goto yystate0 - } -yyrule35: // endswitch - { - lval.Token(l.createToken(l.Token())) - return int(T_ENDSWITCH) - goto yystate0 - } -yyrule36: // endwhile - { - lval.Token(l.createToken(l.Token())) - return int(T_ENDWHILE) - goto yystate0 - } -yyrule37: // eval - { - lval.Token(l.createToken(l.Token())) - return int(T_EVAL) - goto yystate0 - } -yyrule38: // exit|die - { - lval.Token(l.createToken(l.Token())) - return int(T_EXIT) - goto yystate0 - } -yyrule39: // extends - { - lval.Token(l.createToken(l.Token())) - return int(T_EXTENDS) - goto yystate0 - } -yyrule40: // final - { - lval.Token(l.createToken(l.Token())) - return int(T_FINAL) - goto yystate0 - } -yyrule41: // finally - { - lval.Token(l.createToken(l.Token())) - return int(T_FINALLY) - goto yystate0 - } -yyrule42: // for - { - lval.Token(l.createToken(l.Token())) - return int(T_FOR) - goto yystate0 - } -yyrule43: // foreach - { - lval.Token(l.createToken(l.Token())) - return int(T_FOREACH) - goto yystate0 - } -yyrule44: // function|cfunction - { - lval.Token(l.createToken(l.Token())) - return int(T_FUNCTION) - goto yystate0 - } -yyrule45: // global - { - lval.Token(l.createToken(l.Token())) - return int(T_GLOBAL) - goto yystate0 - } -yyrule46: // goto - { - lval.Token(l.createToken(l.Token())) - return int(T_GOTO) - goto yystate0 - } -yyrule47: // if - { - lval.Token(l.createToken(l.Token())) - return int(T_IF) - goto yystate0 - } -yyrule48: // isset - { - lval.Token(l.createToken(l.Token())) - return int(T_ISSET) - goto yystate0 - } -yyrule49: // implements - { - lval.Token(l.createToken(l.Token())) - return int(T_IMPLEMENTS) - goto yystate0 - } -yyrule50: // instanceof - { - lval.Token(l.createToken(l.Token())) - return int(T_INSTANCEOF) - goto yystate0 - } -yyrule51: // insteadof - { - lval.Token(l.createToken(l.Token())) - return int(T_INSTEADOF) - goto yystate0 - } -yyrule52: // interface - { - lval.Token(l.createToken(l.Token())) - return int(T_INTERFACE) - goto yystate0 - } -yyrule53: // list - { - lval.Token(l.createToken(l.Token())) - return int(T_LIST) - goto yystate0 - } -yyrule54: // namespace - { - lval.Token(l.createToken(l.Token())) - return int(T_NAMESPACE) - goto yystate0 - } -yyrule55: // private - { - lval.Token(l.createToken(l.Token())) - return int(T_PRIVATE) - goto yystate0 - } -yyrule56: // public - { - lval.Token(l.createToken(l.Token())) - return int(T_PUBLIC) - goto yystate0 - } -yyrule57: // print - { - lval.Token(l.createToken(l.Token())) - return int(T_PRINT) - goto yystate0 - } -yyrule58: // protected - { - lval.Token(l.createToken(l.Token())) - return int(T_PROTECTED) - goto yystate0 - } -yyrule59: // return - { - lval.Token(l.createToken(l.Token())) - return int(T_RETURN) - goto yystate0 - } -yyrule60: // static - { - lval.Token(l.createToken(l.Token())) - return int(T_STATIC) - goto yystate0 - } -yyrule61: // switch - { - lval.Token(l.createToken(l.Token())) - return int(T_SWITCH) - goto yystate0 - } -yyrule62: // throw - { - lval.Token(l.createToken(l.Token())) - return int(T_THROW) - goto yystate0 - } -yyrule63: // trait - { - lval.Token(l.createToken(l.Token())) - return int(T_TRAIT) - goto yystate0 - } -yyrule64: // try - { - lval.Token(l.createToken(l.Token())) - return int(T_TRY) - goto yystate0 - } -yyrule65: // unset - { - lval.Token(l.createToken(l.Token())) - return int(T_UNSET) - goto yystate0 - } -yyrule66: // use - { - lval.Token(l.createToken(l.Token())) - return int(T_USE) - goto yystate0 - } -yyrule67: // var - { - lval.Token(l.createToken(l.Token())) - return int(T_VAR) - goto yystate0 - } -yyrule68: // while - { - lval.Token(l.createToken(l.Token())) - return int(T_WHILE) - goto yystate0 - } -yyrule69: // yield[ \t\n\r]+from - { - lval.Token(l.createToken(l.Token())) - return int(T_YIELD_FROM) - goto yystate0 - } -yyrule70: // yield - { - lval.Token(l.createToken(l.Token())) - return int(T_YIELD) - goto yystate0 - } -yyrule71: // include - { - lval.Token(l.createToken(l.Token())) - return int(T_INCLUDE) - goto yystate0 - } -yyrule72: // include_once - { - lval.Token(l.createToken(l.Token())) - return int(T_INCLUDE_ONCE) - goto yystate0 - } -yyrule73: // require - { - lval.Token(l.createToken(l.Token())) - return int(T_REQUIRE) - goto yystate0 - } -yyrule74: // require_once - { - lval.Token(l.createToken(l.Token())) - return int(T_REQUIRE_ONCE) - goto yystate0 - } -yyrule75: // __CLASS__ - { - lval.Token(l.createToken(l.Token())) - return int(T_CLASS_C) - goto yystate0 - } -yyrule76: // __DIR__ - { - lval.Token(l.createToken(l.Token())) - return int(T_DIR) - goto yystate0 - } -yyrule77: // __FILE__ - { - lval.Token(l.createToken(l.Token())) - return int(T_FILE) - goto yystate0 - } -yyrule78: // __FUNCTION__ - { - lval.Token(l.createToken(l.Token())) - return int(T_FUNC_C) - goto yystate0 - } -yyrule79: // __LINE__ - { - lval.Token(l.createToken(l.Token())) - return int(T_LINE) - goto yystate0 - } -yyrule80: // __NAMESPACE__ - { - lval.Token(l.createToken(l.Token())) - return int(T_NS_C) - goto yystate0 - } -yyrule81: // __METHOD__ - { - lval.Token(l.createToken(l.Token())) - return int(T_METHOD_C) - goto yystate0 - } -yyrule82: // __TRAIT__ - { - lval.Token(l.createToken(l.Token())) - return int(T_TRAIT_C) - goto yystate0 - } -yyrule83: // __halt_compiler - { - lval.Token(l.createToken(l.Token())) - return int(T_HALT_COMPILER) - goto yystate0 - } -yyrule84: // \([ \t]*array[ \t]*\) - { - lval.Token(l.createToken(l.Token())) - return int(T_ARRAY_CAST) - goto yystate0 - } -yyrule85: // \([ \t]*(bool|boolean)[ \t]*\) - { - lval.Token(l.createToken(l.Token())) - return int(T_BOOL_CAST) - goto yystate0 - } -yyrule86: // \([ \t]*(real|double|float)[ \t]*\) - { - lval.Token(l.createToken(l.Token())) - return int(T_DOUBLE_CAST) - goto yystate0 - } -yyrule87: // \([ \t]*(int|integer)[ \t]*\) - { - lval.Token(l.createToken(l.Token())) - return int(T_INT_CAST) - goto yystate0 - } -yyrule88: // \([ \t]*object[ \t]*\) - { - lval.Token(l.createToken(l.Token())) - return int(T_OBJECT_CAST) - goto yystate0 - } -yyrule89: // \([ \t]*(string|binary)[ \t]*\) - { - lval.Token(l.createToken(l.Token())) - return int(T_STRING_CAST) - goto yystate0 - } -yyrule90: // \([ \t]*unset[ \t]*\) - { - lval.Token(l.createToken(l.Token())) - return int(T_UNSET_CAST) - goto yystate0 - } -yyrule91: // new - { - lval.Token(l.createToken(l.Token())) - return int(T_NEW) - goto yystate0 - } -yyrule92: // and - { - lval.Token(l.createToken(l.Token())) - return int(T_LOGICAL_AND) - goto yystate0 - } -yyrule93: // or - { - lval.Token(l.createToken(l.Token())) - return int(T_LOGICAL_OR) - goto yystate0 - } -yyrule94: // xor - { - lval.Token(l.createToken(l.Token())) - return int(T_LOGICAL_XOR) - goto yystate0 - } -yyrule95: // \\ - { - lval.Token(l.createToken(l.Token())) - return int(T_NS_SEPARATOR) - goto yystate0 - } -yyrule96: // \.\.\. - { - lval.Token(l.createToken(l.Token())) - return int(T_ELLIPSIS) - goto yystate0 - } -yyrule97: // :: - { - lval.Token(l.createToken(l.Token())) - return int(T_PAAMAYIM_NEKUDOTAYIM) // T_DOUBLE_COLON - goto yystate0 - } -yyrule98: // && - { - lval.Token(l.createToken(l.Token())) - return int(T_BOOLEAN_AND) - goto yystate0 - } -yyrule99: // \|\| - { - lval.Token(l.createToken(l.Token())) - return int(T_BOOLEAN_OR) - goto yystate0 - } -yyrule100: // &= - { - lval.Token(l.createToken(l.Token())) - return int(T_AND_EQUAL) - goto yystate0 - } -yyrule101: // \|= - { - lval.Token(l.createToken(l.Token())) - return int(T_OR_EQUAL) - goto yystate0 - } -yyrule102: // \.= - { - lval.Token(l.createToken(l.Token())) - return int(T_CONCAT_EQUAL) - goto yystate0 - } -yyrule103: // \*= - { - lval.Token(l.createToken(l.Token())) - return int(T_MUL_EQUAL) - goto yystate0 - } -yyrule104: // \*\*= - { - lval.Token(l.createToken(l.Token())) - return int(T_POW_EQUAL) - goto yystate0 - } -yyrule105: // [/]= - { - lval.Token(l.createToken(l.Token())) - return int(T_DIV_EQUAL) - goto yystate0 - } -yyrule106: // \+= - { - lval.Token(l.createToken(l.Token())) - return int(T_PLUS_EQUAL) - goto yystate0 - } -yyrule107: // -= - { - lval.Token(l.createToken(l.Token())) - return int(T_MINUS_EQUAL) - goto yystate0 - } -yyrule108: // \^= - { - lval.Token(l.createToken(l.Token())) - return int(T_XOR_EQUAL) - goto yystate0 - } -yyrule109: // %= - { - lval.Token(l.createToken(l.Token())) - return int(T_MOD_EQUAL) - goto yystate0 - } -yyrule110: // -- - { - lval.Token(l.createToken(l.Token())) - return int(T_DEC) - goto yystate0 - } -yyrule111: // \+\+ - { - lval.Token(l.createToken(l.Token())) - return int(T_INC) - goto yystate0 - } -yyrule112: // => - { - lval.Token(l.createToken(l.Token())) - return int(T_DOUBLE_ARROW) - goto yystate0 - } -yyrule113: // \<=\> - { - lval.Token(l.createToken(l.Token())) - return int(T_SPACESHIP) - goto yystate0 - } -yyrule114: // \!=|\<\> - { - lval.Token(l.createToken(l.Token())) - return int(T_IS_NOT_EQUAL) - goto yystate0 - } -yyrule115: // \!== - { - lval.Token(l.createToken(l.Token())) - return int(T_IS_NOT_IDENTICAL) - goto yystate0 - } -yyrule116: // == - { - lval.Token(l.createToken(l.Token())) - return int(T_IS_EQUAL) - goto yystate0 - } -yyrule117: // === - { - lval.Token(l.createToken(l.Token())) - return int(T_IS_IDENTICAL) - goto yystate0 - } -yyrule118: // \<\<= - { - lval.Token(l.createToken(l.Token())) - return int(T_SL_EQUAL) - goto yystate0 - } -yyrule119: // \>\>= - { - lval.Token(l.createToken(l.Token())) - return int(T_SR_EQUAL) - goto yystate0 - } -yyrule120: // \>= - { - lval.Token(l.createToken(l.Token())) - return int(T_IS_GREATER_OR_EQUAL) - goto yystate0 - } -yyrule121: // \<= - { - lval.Token(l.createToken(l.Token())) - return int(T_IS_SMALLER_OR_EQUAL) - goto yystate0 - } -yyrule122: // \*\* - { - lval.Token(l.createToken(l.Token())) - return int(T_POW) - goto yystate0 - } -yyrule123: // \<\< - { - lval.Token(l.createToken(l.Token())) - return int(T_SL) - goto yystate0 - } -yyrule124: // \>\> - { - lval.Token(l.createToken(l.Token())) - return int(T_SR) - goto yystate0 - } -yyrule125: // \?\? - { - lval.Token(l.createToken(l.Token())) - return int(T_COALESCE) - goto yystate0 - } -yyrule126: // (#|[/][/]) - { - - tb := l.Token() - for { - if c == -1 { - break - } - tb = append(tb, l.Last) - switch c { - case '\r': - c = l.Next() - if c == '\n' { - continue + if err == nil { + lex.setTokenPosition(token) + tok = T_LNUMBER + { + (lex.p)++ + goto _out + } } - case '\n': - c = l.Next() - case '?': - c = l.Next() - if c == '>' { - l.ungetChars(1) - tb = tb[:len(tb)-1] - break + lex.setTokenPosition(token) + tok = T_DNUMBER + { + (lex.p)++ + goto _out } - continue - default: - c = l.Next() - continue } - break - } - l.addFreeFloating(freefloating.CommentType, tb) - goto yystate0 - } -yyrule127: // [/][*][*][/] - { + case 12: + { + (lex.p) = (lex.te) - 1 - l.addFreeFloating(freefloating.CommentType, l.Token()) - goto yystate0 - } -yyrule128: // ([/][*])|([/][*][*]) - { - - tb := l.Token() - is_doc_comment := false - if len(tb) > 2 { - is_doc_comment = true - l.PhpDocComment = "" - } - c = l.Next() - for { - if c == -1 { - break // TODO: Unterminated comment starting line %d - } - if l.Prev.Rune == '*' && l.Last.Rune == '/' { - c = l.Next() - break - } - c = l.Next() - } - if is_doc_comment { - l.PhpDocComment = string(l.TokenBytes(nil)) - l.addFreeFloating(freefloating.CommentType, l.Token()) - } else { - l.addFreeFloating(freefloating.CommentType, l.Token()) - } - goto yystate0 - } -yyrule129: // {OPERATORS} - { - lval.Token(l.createToken(l.Token())) - return Rune2Class(rune(l.TokenBytes(nil)[0])) - goto yystate0 - } -yyrule130: // \{ - { - l.pushState(PHP) - lval.Token(l.createToken(l.Token())) - return Rune2Class(rune(l.TokenBytes(nil)[0])) - goto yystate0 - } -yyrule131: // \} - { - l.popState() - lval.Token(l.createToken(l.Token())) - return Rune2Class(rune(l.TokenBytes(nil)[0])) - l.PhpDocComment = "" - goto yystate0 - } -yyrule132: // \${VAR_NAME} - { - lval.Token(l.createToken(l.Token())) - return int(T_VARIABLE) - goto yystate0 - } -yyrule133: // {VAR_NAME} - { - lval.Token(l.createToken(l.Token())) - return int(T_STRING) - goto yystate0 - } -yyrule134: // -> - { - l.Begin(PROPERTY) - lval.Token(l.createToken(l.Token())) - return int(T_OBJECT_OPERATOR) - goto yystate0 - } -yyrule135: // [ \t\n\r]+ - { - l.addFreeFloating(freefloating.WhiteSpaceType, l.Token()) - goto yystate0 - } -yyrule136: // -> - { - lval.Token(l.createToken(l.Token())) - return int(T_OBJECT_OPERATOR) - goto yystate0 - } -yyrule137: // {VAR_NAME} - { - l.Begin(PHP) - lval.Token(l.createToken(l.Token())) - return int(T_STRING) - goto yystate0 - } -yyrule138: // . - { - l.ungetChars(1) - l.Begin(PHP) - goto yystate0 - } -yyrule139: // [\']([^\\\']*(\\(.|\n))*)*[\'] - { - lval.Token(l.createToken(l.Token())) - return int(T_CONSTANT_ENCAPSED_STRING) - goto yystate0 - } -yyrule140: // ` - { - l.Begin(BACKQUOTE) - lval.Token(l.createToken(l.Token())) - return Rune2Class(rune(l.TokenBytes(nil)[0])) - goto yystate0 - } -yyrule141: // ` - { - l.Begin(PHP) - lval.Token(l.createToken(l.Token())) - return Rune2Class(rune(l.TokenBytes(nil)[0])) - goto yystate0 - } -yyrule142: // [b]?\<\<\<[ \t]*({VAR_NAME}|([']{VAR_NAME}['])|(["]{VAR_NAME}["])){NEW_LINE} - { - - tb := l.Token() - binPrefix := 0 - if tb[0].Rune == 'b' { - binPrefix = 1 - } - - lblFirst := 3 + binPrefix - lblLast := len(tb) - 2 - if tb[lblLast].Rune == '\r' { - lblLast-- - } - for { - if tb[lblFirst].Rune == ' ' || tb[lblFirst].Rune == '\t' { - lblFirst++ - continue - } - break - } - heredocToken := make([]lex.Char, lblLast-lblFirst+1) - copy(heredocToken, tb[lblFirst:lblLast+1]) - switch tb[lblFirst].Rune { - case '\'': - lblFirst++ - lblLast-- - l.Begin(NOWDOC) - case '"': - lblFirst++ - lblLast-- - l.Begin(HEREDOC) - default: - l.Begin(HEREDOC) - } - l.heredocLabel = l.tokenString(tb[lblFirst : lblLast+1]) - - ungetCnt := len(l.heredocLabel) - searchLabelAhead := []byte{} - for i := 0; i < len(l.heredocLabel); i++ { - if c == -1 { - break - } - searchLabelAhead = append(searchLabelAhead, byte(rune(c))) - c = l.Next() - } - if l.heredocLabel == string(searchLabelAhead) && ';' == rune(c) { - ungetCnt++ - c = l.Next() - if '\n' == rune(c) || '\r' == rune(c) { - l.Begin(HEREDOC_END) - } - } - l.ungetChars(ungetCnt) - lval.Token(l.createToken(heredocToken)) - return int(T_START_HEREDOC) - } -yyrule143: // .|[ \t\n\r] - { - - searchLabel := []byte{} - tb := []lex.Char{} - - for { - if c == -1 { - break - } - if '\n' == rune(c) || '\r' == rune(c) { - if l.heredocLabel+";" == string(searchLabel) { - l.Begin(HEREDOC_END) - tb = l.ungetChars(len(l.heredocLabel) + 1) - tb = tb[:len(tb)-1] - break - } - if l.heredocLabel == string(searchLabel) { - l.Begin(HEREDOC_END) - tb = l.ungetChars(len(l.heredocLabel)) - tb = tb[:len(tb)-1] - break + base := 10 + if lex.data[lex.ts] == '0' { + base = 8 } - searchLabel = []byte{} + 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_DNUMBER + { + (lex.p)++ + goto _out + } + } + 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_DNUMBER + { + (lex.p)++ + goto _out + } + } + case 14: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ABSTRACT + { + (lex.p)++ + goto _out + } + } + case 15: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ARRAY + { + (lex.p)++ + goto _out + } + } + case 16: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_AS + { + (lex.p)++ + goto _out + } + } + case 17: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_BREAK + { + (lex.p)++ + goto _out + } + } + case 18: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_CALLABLE + { + (lex.p)++ + goto _out + } + } + case 19: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_CASE + { + (lex.p)++ + goto _out + } + } + case 20: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_CATCH + { + (lex.p)++ + goto _out + } + } + case 21: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_CLASS + { + (lex.p)++ + goto _out + } + } + case 22: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_CLONE + { + (lex.p)++ + goto _out + } + } + case 23: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_CONST + { + (lex.p)++ + goto _out + } + } + case 24: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_CONTINUE + { + (lex.p)++ + goto _out + } + } + case 25: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_DECLARE + { + (lex.p)++ + goto _out + } + } + case 26: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_DEFAULT + { + (lex.p)++ + goto _out + } + } + case 27: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_DO + { + (lex.p)++ + goto _out + } + } + case 28: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ECHO + { + (lex.p)++ + goto _out + } + } + case 30: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ELSEIF + { + (lex.p)++ + goto _out + } + } + case 31: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_EMPTY + { + (lex.p)++ + goto _out + } + } + case 32: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ENDDECLARE + { + (lex.p)++ + goto _out + } + } + case 34: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ENDFOREACH + { + (lex.p)++ + goto _out + } + } + case 35: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ENDIF + { + (lex.p)++ + goto _out + } + } + case 36: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ENDSWITCH + { + (lex.p)++ + goto _out + } + } + case 37: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ENDWHILE + { + (lex.p)++ + goto _out + } + } + case 38: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_EVAL + { + (lex.p)++ + goto _out + } + } + case 39: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_EXIT + { + (lex.p)++ + goto _out + } + } + case 40: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_EXTENDS + { + (lex.p)++ + goto _out + } + } + case 42: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_FINALLY + { + (lex.p)++ + goto _out + } + } + case 44: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_FOREACH + { + (lex.p)++ + goto _out + } + } + case 45: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_FUNCTION + { + (lex.p)++ + goto _out + } + } + case 46: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_FN + { + (lex.p)++ + goto _out + } + } + case 47: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_GLOBAL + { + (lex.p)++ + goto _out + } + } + case 48: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_GOTO + { + (lex.p)++ + goto _out + } + } + case 49: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_IF + { + (lex.p)++ + goto _out + } + } + case 50: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_ISSET + { + (lex.p)++ + goto _out + } + } + case 51: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_IMPLEMENTS + { + (lex.p)++ + goto _out + } + } + case 52: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_INSTANCEOF + { + (lex.p)++ + goto _out + } + } + case 53: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_INSTEADOF + { + (lex.p)++ + goto _out + } + } + case 54: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_INTERFACE + { + (lex.p)++ + goto _out + } + } + case 55: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_LIST + { + (lex.p)++ + goto _out + } + } + case 56: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_NAMESPACE + { + (lex.p)++ + goto _out + } + } + case 57: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_PRIVATE + { + (lex.p)++ + goto _out + } + } + case 58: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_PUBLIC + { + (lex.p)++ + goto _out + } + } + case 59: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_PRINT + { + (lex.p)++ + goto _out + } + } + case 60: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_PROTECTED + { + (lex.p)++ + goto _out + } + } + case 61: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_RETURN + { + (lex.p)++ + goto _out + } + } + case 62: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_STATIC + { + (lex.p)++ + goto _out + } + } + case 63: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_SWITCH + { + (lex.p)++ + goto _out + } + } + case 64: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_THROW + { + (lex.p)++ + goto _out + } + } + case 65: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_TRAIT + { + (lex.p)++ + goto _out + } + } + case 66: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_TRY + { + (lex.p)++ + goto _out + } + } + case 67: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_UNSET + { + (lex.p)++ + goto _out + } + } + case 68: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + 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 + } + } + case 71: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_YIELD_FROM + { + (lex.p)++ + goto _out + } + } + case 74: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_INCLUDE_ONCE + { + (lex.p)++ + goto _out + } + } + case 76: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_REQUIRE_ONCE + { + (lex.p)++ + goto _out + } + } + case 77: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_CLASS_C + { + (lex.p)++ + goto _out + } + } + case 78: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_DIR + { + (lex.p)++ + goto _out + } + } + case 79: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_FILE + { + (lex.p)++ + goto _out + } + } + case 80: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_FUNC_C + { + (lex.p)++ + goto _out + } + } + case 81: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_LINE + { + (lex.p)++ + goto _out + } + } + case 82: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_NS_C + { + (lex.p)++ + goto _out + } + } + case 83: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_METHOD_C + { + (lex.p)++ + goto _out + } + } + case 84: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_TRAIT_C + { + (lex.p)++ + goto _out + } + } + case 85: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + 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) + tok = T_LOGICAL_XOR + { + (lex.p)++ + goto _out + } + } + case 118: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_SL + { + (lex.p)++ + goto _out + } + } + case 135: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_STRING + { + (lex.p)++ + goto _out + } + } + case 140: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = TokenID(int('"')) + lex.cs = 489 + { + (lex.p)++ + goto _out + } + } + } + + goto _again + tr14: + // line scanner/scanner.rl:361 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_CONSTANT_ENCAPSED_STRING + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr18: + // line scanner/scanner.rl:384 + (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 st121 + tr22: + // line scanner/scanner.rl:346 + (lex.p) = (lex.te) - 1 + { + // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); + // tok = TokenID(Rune2Class(rune)); + lex.setTokenPosition(token) + tok = TokenID(int(lex.data[lex.ts])) + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr37: + // line scanner/scanner.rl:322 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_ARRAY_CAST + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr44: + // line scanner/scanner.rl:327 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_STRING_CAST + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr48: + // line scanner/scanner.rl:323 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_BOOL_CAST + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr56: + // line scanner/scanner.rl:324 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_DOUBLE_CAST + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr63: + // line scanner/scanner.rl:325 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_INT_CAST + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr72: + // line scanner/scanner.rl:326 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_OBJECT_CAST + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr83: + // line scanner/scanner.rl:328 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_UNSET_CAST + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr84: + // line scanner/scanner.rl:290 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_ELLIPSIS + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr87: + // line scanner/scanner.rl:176 + (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:334 + lex.te = (lex.p) + 1 + { + isDocComment := false + if lex.te-lex.ts > 4 && string(lex.data[lex.ts:lex.ts+3]) == "/**" { + isDocComment = true + } + lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + + if isDocComment { + lex.PhpDocComment = string(lex.data[lex.ts:lex.te]) + } + } + goto st121 + tr96: + // line scanner/scanner.rl:187 + (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)++ + lex.cs = 121 + goto _out + } + } + + lex.setTokenPosition(token) + tok = T_DNUMBER + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr109: + lex.cs = 121 + // line scanner/scanner.rl:174 + (lex.p) = (lex.te) - 1 + { + lex.setTokenPosition(token) + tok = TokenID(int(';')) + lex.cs = 114 + { + (lex.p)++ + goto _out + } + } + goto _again + tr125: + lex.cs = 121 + // line scanner/scanner.rl:173 + (lex.p) = (lex.te) - 1 + { + lex.setTokenPosition(token) + tok = TokenID(int(';')) + lex.cs = 114 + { + (lex.p)++ + goto _out + } + } + goto _again + tr127: + // line scanner/scanner.rl:357 + (lex.p) = (lex.te) - 1 + { + lex.setTokenPosition(token) + tok = T_STRING + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr129: + // line scanner/scanner.rl:271 + (lex.p) = (lex.te) - 1 + { + lex.setTokenPosition(token) + tok = T_YIELD + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr140: + // line scanner/scanner.rl:270 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_YIELD_FROM + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr180: + // line scanner/scanner.rl:384 + 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 st121 + tr191: + // line scanner/scanner.rl:346 + lex.te = (lex.p) + 1 + { + // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); + // tok = TokenID(Rune2Class(rune)); + lex.setTokenPosition(token) + tok = TokenID(int(lex.data[lex.ts])) + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr225: + // line scanner/scanner.rl:289 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_NS_SEPARATOR + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr228: + lex.cs = 121 + // line scanner/scanner.rl:381 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int('`')) + lex.cs = 483 + { + (lex.p)++ + goto _out + } + } + goto _again + tr229: + // line scanner/scanner.rl:354 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int('{')) + lex.call(121, 121) + goto _out + } + goto st121 + tr231: + // line scanner/scanner.rl:355 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int('}')) + lex.ret(1) + lex.PhpDocComment = "" + goto _out + } + goto st121 + tr232: + // line scanner/scanner.rl:172 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st121 + tr234: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:172 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st121 + tr238: + // line scanner/scanner.rl:384 + 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 st121 + tr239: + // line scanner/scanner.rl:346 + lex.te = (lex.p) + (lex.p)-- + { + // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); + // tok = TokenID(Rune2Class(rune)); + lex.setTokenPosition(token) + tok = TokenID(int(lex.data[lex.ts])) + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr241: + // line scanner/scanner.rl:308 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_IS_NOT_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr242: + // line scanner/scanner.rl:309 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_IS_NOT_IDENTICAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr243: + lex.cs = 121 + // line scanner/scanner.rl:382 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = TokenID(int('"')) + lex.cs = 489 + { + (lex.p)++ + goto _out + } + } + goto _again + tr244: + // line scanner/scanner.rl:330 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetStr("?>") + lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + } + goto st121 + tr246: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:330 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetStr("?>") + lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + } + goto st121 + tr250: + // line scanner/scanner.rl:356 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_VARIABLE + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr251: + // line scanner/scanner.rl:303 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_MOD_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr252: + // line scanner/scanner.rl:292 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_BOOLEAN_AND + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr253: + // line scanner/scanner.rl:294 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_AND_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr255: + // line scanner/scanner.rl:297 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_MUL_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr256: + // line scanner/scanner.rl:316 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_POW + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr257: + // line scanner/scanner.rl:298 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_POW_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr258: + // line scanner/scanner.rl:305 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_INC + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr259: + // line scanner/scanner.rl:300 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_PLUS_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr260: + // line scanner/scanner.rl:304 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_DEC + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr261: + // line scanner/scanner.rl:301 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_MINUS_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr262: + lex.cs = 121 + // line scanner/scanner.rl:359 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_OBJECT_OPERATOR + lex.cs = 468 + { + (lex.p)++ + goto _out + } + } + goto _again + tr264: + // line scanner/scanner.rl:296 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_CONCAT_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr265: + // line scanner/scanner.rl:176 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_DNUMBER + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr268: + // line scanner/scanner.rl:299 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_DIV_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr269: + // line scanner/scanner.rl:187 + lex.te = (lex.p) + (lex.p)-- + { + 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 = 121 + goto _out + } + } + + lex.setTokenPosition(token) + tok = T_DNUMBER + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr274: + // line scanner/scanner.rl:177 + lex.te = (lex.p) + (lex.p)-- + { + 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 + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + + lex.setTokenPosition(token) + tok = T_DNUMBER + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr275: + // line scanner/scanner.rl:202 + 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:291 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_PAAMAYIM_NEKUDOTAYIM + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr277: + lex.cs = 121 + // line scanner/scanner.rl:174 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = TokenID(int(';')) + lex.cs = 114 + { + (lex.p)++ + goto _out + } + } + goto _again + tr279: + lex.cs = 121 + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:174 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = TokenID(int(';')) + lex.cs = 114 + { + (lex.p)++ + goto _out + } + } + goto _again + tr282: + // line scanner/scanner.rl:308 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_IS_NOT_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr283: + // line scanner/scanner.rl:317 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_SL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr284: + // line scanner/scanner.rl:312 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_SL_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr285: + lex.cs = 121 + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:367 + lex.te = (lex.p) + (lex.p)-- + { + lex.heredocLabel = lex.data[lblStart:lblEnd] + lex.setTokenPosition(token) + tok = T_START_HEREDOC + + if lex.isHeredocEnd(lex.p + 1) { + lex.cs = 495 + } else if lex.data[lblStart-1] == '\'' { + lex.cs = 474 } else { - searchLabel = append(searchLabel, byte(rune(c))) + lex.cs = 477 } - c = l.Next() - } - lval.Token(l.createToken(tb)) - return int(T_ENCAPSED_AND_WHITESPACE) - } -yyrule144: // {VAR_NAME}\; - { - l.Begin(PHP) - lval.Token(l.createToken(l.ungetChars(1))) - return int(T_END_HEREDOC) - goto yystate0 - } -yyrule145: // {VAR_NAME} - { - l.Begin(PHP) - lval.Token(l.createToken(l.Token())) - return int(T_END_HEREDOC) - goto yystate0 - } -yyrule146: // [b]?[\"] - { - - binPrefix := l.Token()[0].Rune == 'b' - beginString := func() int { - cnt := 1 - if binPrefix { - cnt = 2 - } - - l.ungetChars(len(l.Token()) - cnt) - chars := l.Token()[:cnt] - l.pushState(STRING) - lval.Token(l.createToken(chars)) - return Rune2Class('"') - } - F: - for { - if c == -1 { - break - } - switch c { - case '"': - c = l.Next() - lval.Token(l.createToken(l.Token())) - return int(T_CONSTANT_ENCAPSED_STRING) - break F - - case '$': - c = l.Next() - if rune(c) == '{' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ' { - return beginString() - break F - } - l.ungetChars(0) - - case '{': - c = l.Next() - if rune(c) == '$' { - return beginString() - break F - } - l.ungetChars(0) - case '\\': - c = l.Next() - } - c = l.Next() - } - goto yystate0 - } -yyrule147: // \" - { - l.popState() - lval.Token(l.createToken(l.Token())) - return Rune2Class(l.Token()[0].Rune) - goto yystate0 - } -yyrule148: // \{\$ - { - lval.Token(l.createToken(l.ungetChars(1))) - l.pushState(PHP) - return int(T_CURLY_OPEN) - goto yystate0 - } -yyrule149: // \$\{ - { - l.pushState(STRING_VAR_NAME) - lval.Token(l.createToken(l.Token())) - return int(T_DOLLAR_OPEN_CURLY_BRACES) - goto yystate0 - } -yyrule150: // \${VAR_NAME} - { - l.ungetChars(len(l.Token())) - l.pushState(STRING_VAR) - goto yystate0 - } -yyrule151: // .|[ \t\n\r] - { - - currentChar := l.Prev - tb := []lex.Char{currentChar} - for { - switch currentChar.Rune { - case '$': - if c == '{' || isValidFirstVarNameRune(rune(c)) { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])) - return int(T_ENCAPSED_AND_WHITESPACE) - } - case '{': - if rune(c) == '$' { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])) - return int(T_ENCAPSED_AND_WHITESPACE) - } - case '\\': - currentChar := l.Last - tb = append(tb, currentChar) - c = l.Next() - } - if rune(c) == '"' { - lval.Token(l.createToken(l.Token())) - return int(T_ENCAPSED_AND_WHITESPACE) - } - currentChar = l.Last - tb = append(tb, currentChar) - c = l.Next() - if c == -1 { - break + { + (lex.p)++ + goto _out } } - goto yystate0 - } -yyrule152: // .|[ \t\n\r] - { - - currentChar := l.Prev - tb := []lex.Char{currentChar} - for { - switch currentChar.Rune { - case '$': - if c == '{' || isValidFirstVarNameRune(rune(c)) { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])) - return int(T_ENCAPSED_AND_WHITESPACE) - } - case '{': - if rune(c) == '$' { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])) - return int(T_ENCAPSED_AND_WHITESPACE) - } - case '\\': - currentChar := l.Last - tb = append(tb, currentChar) - c = l.Next() - } - if rune(c) == '`' { - lval.Token(l.createToken(l.Token())) - return int(T_ENCAPSED_AND_WHITESPACE) - } - currentChar = l.Last - tb = append(tb, currentChar) - c = l.Next() - if c == -1 { - break + goto _again + tr286: + // line scanner/scanner.rl:315 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_IS_SMALLER_OR_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out } } - goto yystate0 - } -yyrule153: // .|[ \t\n\r] - { + goto st121 + tr287: + // line scanner/scanner.rl:307 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_SPACESHIP + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr289: + // line scanner/scanner.rl:306 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_DOUBLE_ARROW + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr290: + // line scanner/scanner.rl:310 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_IS_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr291: + // line scanner/scanner.rl:311 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_IS_IDENTICAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr292: + // line scanner/scanner.rl:314 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_IS_GREATER_OR_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr294: + // line scanner/scanner.rl:318 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_SR + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr295: + // line scanner/scanner.rl:313 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_SR_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr298: + lex.cs = 121 + // line scanner/scanner.rl:173 + 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:173 + 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:319 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_COALESCE + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr302: + // line scanner/scanner.rl:320 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_COALESCE_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr303: + // line scanner/scanner.rl:357 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_STRING + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr383: + // line scanner/scanner.rl:228 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ELSE + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr403: + // line scanner/scanner.rl:232 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ENDFOR + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr432: + // line scanner/scanner.rl:240 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_FINAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr436: + // line scanner/scanner.rl:242 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_FOR + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr468: + // line scanner/scanner.rl:272 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_INCLUDE + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr536: + // line scanner/scanner.rl:274 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_REQUIRE + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr582: + // line scanner/scanner.rl:271 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_YIELD + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr587: + // line scanner/scanner.rl:302 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_XOR_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr661: + // line scanner/scanner.rl:295 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_OR_EQUAL + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + tr662: + // line scanner/scanner.rl:293 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_BOOLEAN_OR + { + (lex.p)++ + lex.cs = 121 + goto _out + } + } + goto st121 + st121: + // line NONE:1 + lex.ts = 0 - searchLabel := []byte{} - currentChar := l.Prev - tb := []lex.Char{currentChar} + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof121 + } + st_case_121: + // line NONE:1 + lex.ts = (lex.p) - HEREDOC_FOR: - for { - nls := 0 - switch currentChar.Rune { - case '\r': - if c == '\n' { - nls = 1 - currentChar := l.Last - tb = append(tb, currentChar) - c = l.Next() + // line scanner/scanner.go:3387 + switch lex.data[(lex.p)] { + case 10: + goto tr10 + case 13: + goto st124 + case 32: + goto tr181 + case 33: + goto st125 + case 34: + goto tr184 + case 35: + goto st128 + case 36: + goto st130 + case 37: + goto st132 + case 38: + goto st133 + case 39: + goto tr189 + 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 59: + goto tr199 + case 60: + goto st153 + case 61: + goto st157 + case 62: + goto st159 + case 63: + goto st161 + case 64: + goto tr191 + case 65: + goto st165 + case 66: + goto tr205 + case 67: + goto st181 + case 68: + goto st210 + case 69: + goto st221 + case 70: + goto st263 + case 71: + goto st274 + case 73: + goto st281 + case 76: + goto st320 + case 78: + goto st323 + case 79: + goto st332 + case 80: + goto st333 + case 82: + goto st350 + case 83: + goto st364 + case 84: + goto st373 + case 85: + goto st380 + case 86: + goto st385 + case 87: + goto st387 + case 88: + goto st391 + case 89: + goto st393 + case 92: + goto tr225 + case 94: + goto st401 + case 95: + goto st402 + case 96: + goto tr228 + case 97: + goto st165 + case 98: + goto tr205 + case 99: + goto st181 + case 100: + goto st210 + case 101: + goto st221 + case 102: + goto st263 + case 103: + goto st274 + case 105: + goto st281 + case 108: + goto st320 + case 110: + goto st323 + case 111: + goto st332 + case 112: + goto st333 + case 114: + goto st350 + case 115: + goto st364 + case 116: + goto st373 + case 117: + goto st380 + case 118: + goto st385 + case 119: + goto st387 + case 120: + goto st391 + case 121: + goto st393 + case 123: + goto tr229 + case 124: + goto st467 + case 125: + goto tr231 + case 126: + goto tr191 + case 127: + 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 tr181 } - fallthrough - case '\n': - if l.heredocLabel+";" == string(searchLabel) { - l.Begin(HEREDOC_END) - l.ungetChars(len(l.heredocLabel) + 1 + nls) - i := len(tb) - len(l.heredocLabel) - 3 - nls - if i < 1 { - break HEREDOC_FOR - } - tb = tb[:i] - lval.Token(l.createToken(tb)) - return int(T_ENCAPSED_AND_WHITESPACE) - } - if l.heredocLabel == string(searchLabel) { - l.Begin(HEREDOC_END) - l.ungetChars(len(l.heredocLabel) + nls) - i := len(tb) - len(l.heredocLabel) - 2 - nls - if i < 1 { - break HEREDOC_FOR - } - tb = tb[:i] - lval.Token(l.createToken(tb)) - return int(T_ENCAPSED_AND_WHITESPACE) - } - - searchLabel = []byte{} - case '$': - if c == '{' || isValidFirstVarNameRune(rune(c)) { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])) - return int(T_ENCAPSED_AND_WHITESPACE) - } - case '{': - if rune(c) == '$' { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])) - return int(T_ENCAPSED_AND_WHITESPACE) - } - case '\\': - if c != '\n' && c != '\r' { - currentChar := l.Last - tb = append(tb, currentChar) - c = l.Next() - } - default: - searchLabel = append(searchLabel, byte(rune(currentChar.Rune))) + goto tr180 } - if c == -1 { - break + 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 tr191 + } + case lex.data[(lex.p)] > 57: + if 91 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 93 { + goto tr191 + } + default: + goto tr97 } - currentChar = l.Last - tb = append(tb, currentChar) - c = l.Next() + default: + goto tr180 } - goto yystate0 - } -yyrule154: // \${VAR_NAME} - { - lval.Token(l.createToken(l.Token())) - return int(T_VARIABLE) - goto yystate0 - } -yyrule155: // ->{VAR_NAME} - { - lval.Token(l.createToken(l.ungetChars(len(l.Token()) - 2))) - return int(T_OBJECT_OPERATOR) - goto yystate0 - } -yyrule156: // {VAR_NAME} - { - l.popState() - lval.Token(l.createToken(l.Token())) - return int(T_STRING) - goto yystate0 - } -yyrule157: // \[ - { - l.pushState(STRING_VAR_INDEX) - lval.Token(l.createToken(l.Token())) - return Rune2Class(rune(l.TokenBytes(nil)[0])) - goto yystate0 - } -yyrule158: // .|[ \t\n\r] - { - l.ungetChars(1) - l.popState() - goto yystate0 - } -yyrule159: // {LNUM}|{HNUM}|{BNUM} - { - lval.Token(l.createToken(l.Token())) - return int(T_NUM_STRING) - goto yystate0 - } -yyrule160: // \${VAR_NAME} - { - lval.Token(l.createToken(l.Token())) - return int(T_VARIABLE) - goto yystate0 - } -yyrule161: // {VAR_NAME} - { - lval.Token(l.createToken(l.Token())) - return int(T_STRING) - goto yystate0 - } -yyrule162: // \] - { - l.popState() - l.popState() - lval.Token(l.createToken(l.Token())) - return Rune2Class(rune(l.TokenBytes(nil)[0])) - goto yystate0 - } -yyrule163: // [ \n\r\t\\'#] - { - l.popState() - l.popState() - lval.Token(l.createToken(l.Token())) - return int(T_ENCAPSED_AND_WHITESPACE) - goto yystate0 - } -yyrule164: // {OPERATORS} - { - lval.Token(l.createToken(l.Token())) - return Rune2Class(rune(l.TokenBytes(nil)[0])) - goto yystate0 - } -yyrule165: // {ANY_CHAR} - { - l.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", l.TokenBytes(nil)[0], l.TokenBytes(nil)[0])) - l.Abort() - goto yystate0 - } -yyrule166: // {VAR_NAME}[\[\}] - { - l.popState() - l.pushState(PHP) - lval.Token(l.createToken(l.ungetChars(1))) - return int(T_STRING_VARNAME) - goto yystate0 - } -yyrule167: // . - { - l.ungetChars(1) - l.popState() - l.pushState(PHP) - goto yystate0 - } -yyrule168: // .|[ \t\n\r] - { - l.addFreeFloating(freefloating.TokenType, l.Token()) - goto yystate0 - } -yyrule169: // {ANY_CHAR} - { - l.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", l.TokenBytes(nil)[0], l.TokenBytes(nil)[0])) - l.Abort() - goto yystate0 - } - panic("unreachable") + goto tr211 + tr181: + // line NONE:1 + lex.te = (lex.p) + 1 - goto yyabort // silence unused label error + goto st122 + tr235: + // line NONE:1 + lex.te = (lex.p) + 1 -yyabort: // no lexem recognized - if _, ok := l.Abort(); ok { - // always return same $end token - if l.lastToken == nil { - l.lastToken = l.createToken(l.Token()) + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st122 + st122: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof122 + } + st_case_122: + // 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:382 + 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 + case 92: + goto st9 + } + 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:3794 + _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 st129 + } + if 512 <= _widec && _widec <= 767 { + goto st128 + } + 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_eof129 + } + st_case_129: + // line scanner/scanner.go:3849 + _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 tr239 + } + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto tr239 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr239 + } + default: + goto tr239 + } + goto st131 + st131: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof131 + } + st_case_131: + if lex.data[(lex.p)] == 96 { + goto tr250 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + 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 tr250 + } + case lex.data[(lex.p)] >= 91: + goto tr250 + } + default: + goto tr250 + } + goto st131 + st132: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof132 + } + st_case_132: + if lex.data[(lex.p)] == 61 { + goto tr251 + } + goto tr239 + st133: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof133 + } + st_case_133: + switch lex.data[(lex.p)] { + case 38: + goto tr252 + case 61: + goto tr253 + } + goto tr239 + tr189: + // line NONE:1 + lex.te = (lex.p) + 1 + + goto st134 + st134: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof134 + } + st_case_134: + // line scanner/scanner.go:3973 + switch lex.data[(lex.p)] { + case 10: + goto tr20 + case 13: + goto tr20 + case 39: + goto tr14 + case 92: + goto st12 + } + goto st11 + tr20: + // 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 st11 + st11: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof11 + } + st_case_11: + // line scanner/scanner.go:4002 + switch lex.data[(lex.p)] { + case 10: + goto tr20 + case 13: + goto tr20 + case 39: + goto tr14 + case 92: + goto st12 + } + 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:4036 + 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 st54 + case 115: + goto st57 + case 117: + goto st62 + } + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st13 + } + 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 st54 + case 115: + goto st57 + case 117: + goto st62 + } + 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 + } + st_case_14: + switch lex.data[(lex.p)] { + case 82: + goto st15 + case 114: + goto st15 + } + goto tr22 + st15: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof15 + } + st_case_15: + switch lex.data[(lex.p)] { + case 82: + goto st16 + case 114: + goto st16 + } + goto tr22 + st16: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof16 + } + st_case_16: + switch lex.data[(lex.p)] { + case 65: + goto st17 + case 97: + goto st17 + } + goto tr22 + st17: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof17 + } + st_case_17: + switch lex.data[(lex.p)] { + case 89: + goto st18 + case 121: + goto st18 + } + goto tr22 + st18: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof18 + } + st_case_18: + switch lex.data[(lex.p)] { + case 9: + goto st18 + case 32: + goto st18 + case 41: + goto tr37 + } + 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 73: + goto st20 + case 79: + goto st25 + case 105: + goto st20 + case 111: + goto st25 + } + goto tr22 + st20: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof20 + } + st_case_20: + switch lex.data[(lex.p)] { + case 78: + goto st21 + case 110: + goto st21 + } + goto tr22 + st21: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof21 + } + st_case_21: + switch lex.data[(lex.p)] { + case 65: + goto st22 + case 97: + goto st22 + } + goto tr22 + st22: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof22 + } + st_case_22: + switch lex.data[(lex.p)] { + case 82: + goto st23 + case 114: + goto st23 + } + goto tr22 + st23: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof23 + } + st_case_23: + switch lex.data[(lex.p)] { + case 89: + goto st24 + case 121: + goto st24 + } + goto tr22 + st24: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof24 + } + st_case_24: + switch lex.data[(lex.p)] { + case 9: + goto st24 + case 32: + goto st24 + case 41: + goto tr44 + } + 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 79: + goto st26 + case 111: + goto st26 + } + goto tr22 + st26: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof26 + } + st_case_26: + switch lex.data[(lex.p)] { + case 76: + goto st27 + case 108: + goto st27 + } + goto tr22 + st27: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof27 + } + st_case_27: + switch lex.data[(lex.p)] { + case 9: + goto st28 + case 32: + goto st28 + case 41: + goto tr48 + case 69: + goto st29 + case 101: + goto st29 + } + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st28 + } + goto tr22 + st28: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof28 + } + st_case_28: + switch lex.data[(lex.p)] { + case 9: + goto st28 + case 32: + goto st28 + case 41: + goto tr48 + } + 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 65: + goto st30 + case 97: + goto st30 + } + goto tr22 + st30: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof30 + } + st_case_30: + switch lex.data[(lex.p)] { + case 78: + goto st28 + case 110: + goto st28 + } + goto tr22 + st31: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof31 + } + st_case_31: + switch lex.data[(lex.p)] { + case 79: + goto st32 + case 111: + goto st32 + } + goto tr22 + st32: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof32 + } + st_case_32: + switch lex.data[(lex.p)] { + case 85: + goto st33 + case 117: + goto st33 + } + goto tr22 + st33: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof33 + } + st_case_33: + switch lex.data[(lex.p)] { + case 66: + goto st34 + case 98: + goto st34 + } + goto tr22 + st34: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof34 + } + st_case_34: + switch lex.data[(lex.p)] { + case 76: + goto st35 + case 108: + goto st35 + } + goto tr22 + st35: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof35 + } + st_case_35: + switch lex.data[(lex.p)] { + case 69: + goto st36 + case 101: + goto st36 + } + goto tr22 + st36: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof36 + } + st_case_36: + switch lex.data[(lex.p)] { + case 9: + goto st36 + case 32: + goto st36 + case 41: + goto tr56 + } + 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 76: + goto st38 + case 108: + goto st38 + } + goto tr22 + st38: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof38 + } + st_case_38: + switch lex.data[(lex.p)] { + case 79: + goto st39 + case 111: + goto st39 + } + goto tr22 + st39: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof39 + } + st_case_39: + switch lex.data[(lex.p)] { + case 65: + goto st40 + case 97: + goto st40 + } + goto tr22 + st40: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof40 + } + st_case_40: + switch lex.data[(lex.p)] { + case 84: + goto st36 + case 116: + goto st36 + } + goto tr22 + st41: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof41 + } + st_case_41: + switch lex.data[(lex.p)] { + case 78: + goto st42 + case 110: + goto st42 + } + goto tr22 + st42: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof42 + } + st_case_42: + switch lex.data[(lex.p)] { + case 84: + goto st43 + case 116: + goto st43 + } + goto tr22 + st43: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof43 + } + st_case_43: + switch lex.data[(lex.p)] { + case 9: + goto st44 + case 32: + goto st44 + case 41: + goto tr63 + case 69: + goto st45 + case 101: + goto st45 + } + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st44 + } + goto tr22 + st44: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof44 + } + st_case_44: + switch lex.data[(lex.p)] { + case 9: + goto st44 + case 32: + goto st44 + case 41: + goto tr63 + } + 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 71: + goto st46 + case 103: + goto st46 + } + goto tr22 + st46: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof46 + } + st_case_46: + switch lex.data[(lex.p)] { + case 69: + goto st47 + case 101: + goto st47 + } + goto tr22 + st47: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof47 + } + st_case_47: + switch lex.data[(lex.p)] { + case 82: + goto st44 + case 114: + goto st44 + } + goto tr22 + st48: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof48 + } + st_case_48: + switch lex.data[(lex.p)] { + case 66: + goto st49 + case 98: + goto st49 + } + goto tr22 + st49: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof49 + } + st_case_49: + switch lex.data[(lex.p)] { + case 74: + goto st50 + case 106: + goto st50 + } + goto tr22 + st50: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof50 + } + st_case_50: + switch lex.data[(lex.p)] { + case 69: + goto st51 + case 101: + goto st51 + } + goto tr22 + st51: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof51 + } + st_case_51: + switch lex.data[(lex.p)] { + case 67: + goto st52 + case 99: + goto st52 + } + goto tr22 + st52: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof52 + } + st_case_52: + switch lex.data[(lex.p)] { + case 84: + goto st53 + case 116: + goto st53 + } + goto tr22 + st53: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof53 + } + st_case_53: + switch lex.data[(lex.p)] { + case 9: + goto st53 + case 32: + goto st53 + case 41: + goto tr72 + } + 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 69: + goto st55 + case 101: + goto st55 + } + goto tr22 + st55: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof55 + } + st_case_55: + switch lex.data[(lex.p)] { + case 65: + goto st56 + case 97: + goto st56 + } + goto tr22 + st56: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof56 + } + st_case_56: + switch lex.data[(lex.p)] { + case 76: + goto st36 + case 108: + goto st36 + } + goto tr22 + st57: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof57 + } + st_case_57: + switch lex.data[(lex.p)] { + case 84: + goto st58 + case 116: + goto st58 + } + goto tr22 + st58: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof58 + } + st_case_58: + switch lex.data[(lex.p)] { + case 82: + goto st59 + case 114: + goto st59 + } + goto tr22 + st59: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof59 + } + st_case_59: + switch lex.data[(lex.p)] { + case 73: + goto st60 + case 105: + goto st60 + } + goto tr22 + st60: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof60 + } + st_case_60: + switch lex.data[(lex.p)] { + case 78: + goto st61 + case 110: + goto st61 + } + goto tr22 + st61: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof61 + } + st_case_61: + switch lex.data[(lex.p)] { + case 71: + goto st24 + case 103: + goto st24 + } + goto tr22 + st62: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof62 + } + st_case_62: + switch lex.data[(lex.p)] { + case 78: + goto st63 + case 110: + goto st63 + } + goto tr22 + st63: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof63 + } + st_case_63: + switch lex.data[(lex.p)] { + case 83: + goto st64 + case 115: + goto st64 + } + goto tr22 + st64: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof64 + } + st_case_64: + switch lex.data[(lex.p)] { + case 69: + goto st65 + case 101: + goto st65 + } + goto tr22 + st65: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof65 + } + st_case_65: + switch lex.data[(lex.p)] { + case 84: + goto st66 + case 116: + goto st66 + } + goto tr22 + st66: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof66 + } + st_case_66: + switch lex.data[(lex.p)] { + case 9: + goto st66 + case 32: + goto st66 + case 41: + goto tr83 + } + if 11 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto st66 + } + goto tr22 + st136: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof136 + } + st_case_136: + switch lex.data[(lex.p)] { + case 42: + goto st137 + case 61: + goto tr255 + } + goto tr239 + st137: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof137 + } + st_case_137: + if lex.data[(lex.p)] == 61 { + goto tr257 + } + goto tr256 + st138: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof138 + } + st_case_138: + switch lex.data[(lex.p)] { + case 43: + goto tr258 + case 61: + goto tr259 + } + goto tr239 + st139: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof139 + } + st_case_139: + switch lex.data[(lex.p)] { + case 45: + goto tr260 + case 61: + goto tr261 + case 62: + goto tr262 + } + 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: + // line scanner/scanner.go:4884 + switch lex.data[(lex.p)] { + case 46: + goto st67 + case 61: + goto tr264 + } + 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:176 + lex.act = 10 + goto st141 + st141: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof141 + } + st_case_141: + // line scanner/scanner.go:4916 + switch lex.data[(lex.p)] { + case 69: + goto st68 + case 95: + goto st70 + case 101: + goto st68 + } + 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:176 + lex.act = 10 + goto st142 + st142: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof142 + } + st_case_142: + // line scanner/scanner.go:4965 + if lex.data[(lex.p)] == 95 { + goto st69 + } + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr86 + } + goto tr265 + st70: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof70 + } + st_case_70: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr88 + } + goto tr87 + tr196: + // line NONE:1 + lex.te = (lex.p) + 1 + + goto st143 + st143: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof143 + } + st_case_143: + // line scanner/scanner.go:4992 + 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:5011 + switch lex.data[(lex.p)] { + case 10: + goto st72 + case 42: + goto st73 + } + 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:5028 + 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:5045 + 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:187 + lex.act = 12 + goto st144 + st144: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof144 + } + st_case_144: + // line scanner/scanner.go:5067 + 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 + } + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr97 + } + goto tr269 + tr270: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:176 + lex.act = 10 + goto st145 + st145: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof145 + } + st_case_145: + // line scanner/scanner.go:5098 + switch lex.data[(lex.p)] { + case 69: + goto st68 + case 101: + goto st68 + } + 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:187 + lex.act = 12 + goto st146 + st146: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof146 + } + st_case_146: + // line scanner/scanner.go:5121 + switch lex.data[(lex.p)] { + case 46: + goto tr270 + case 69: + goto st68 + case 95: + goto st74 + case 101: + goto st68 + } + 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_eof74 + } + st_case_74: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr97 + } + goto tr96 + st75: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof75 + } + st_case_75: + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { + goto tr98 + } + goto tr11 + tr98: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:177 + lex.act = 11 + goto st147 + st147: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof147 + } + st_case_147: + // line scanner/scanner.go:5166 + 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_eof76 + } + st_case_76: + 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 tr11 + tr99: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:202 + lex.act = 13 + goto st148 + st148: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof148 + } + st_case_148: + // line scanner/scanner.go:5204 + if lex.data[(lex.p)] == 95 { + goto st76 + } + 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: + if lex.data[(lex.p)] == 58 { + goto tr276 + } + 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: + // line scanner/scanner.go:5240 + 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 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:5264 + 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:5288 + 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:5312 + 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:5326 + 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:5341 + switch lex.data[(lex.p)] { + case 10: + goto st152 + case 13: + goto st81 + } + goto tr277 + st152: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof152 + } + st_case_152: + goto tr279 + st81: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof81 + } + 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 tr282 + } + goto tr239 + tr280: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:317 + lex.act = 118 + goto st154 + st154: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof154 + } + st_case_154: + // line scanner/scanner.go:5390 + 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:5458 + 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:5492 + switch lex.data[(lex.p)] { + case 10: + goto st155 + case 13: + goto st86 + } + 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: + // line scanner/scanner.go:5509 + 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:5520 + 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)] == 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 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:5555 + 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:5589 + 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: + if lex.data[(lex.p)] == 62 { + goto tr287 + } + goto tr286 + st157: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof157 + } + st_case_157: + switch lex.data[(lex.p)] { + case 61: + goto st158 + case 62: + goto tr289 + } + goto tr239 + st158: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof158 + } + st_case_158: + if lex.data[(lex.p)] == 61 { + goto tr291 + } + goto tr290 + st159: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof159 + } + st_case_159: + switch lex.data[(lex.p)] { + case 61: + goto tr292 + case 62: + goto st160 + } + goto tr239 + st160: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof160 + } + st_case_160: + if lex.data[(lex.p)] == 61 { + goto tr295 + } + goto tr294 + st161: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof161 + } + st_case_161: + switch lex.data[(lex.p)] { + case 62: + goto tr296 + case 63: + goto st164 + } + 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:5689 + switch lex.data[(lex.p)] { + case 10: + goto st163 + case 13: + goto st90 + } + goto tr298 + st163: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof163 + } + st_case_163: + goto tr300 + st90: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof90 + } + st_case_90: + if lex.data[(lex.p)] == 10 { + goto st163 + } + goto tr125 + st164: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof164 + } + st_case_164: + if lex.data[(lex.p)] == 61 { + goto tr302 + } + 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 st174 + case 83: + goto tr307 + case 96: + goto tr303 + case 98: + goto st167 + case 110: + goto st173 + case 114: + goto st174 + case 115: + goto tr307 + } + 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 + tr211: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:357 + lex.act = 135 + goto st166 + tr307: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:215 + lex.act = 16 + goto st166 + tr313: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:213 + lex.act = 14 + goto st166 + tr314: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:286 + lex.act = 87 + goto st166 + tr317: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:214 + lex.act = 15 + goto st166 + tr322: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:216 + lex.act = 17 + goto st166 + tr334: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:217 + lex.act = 18 + goto st166 + tr335: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:218 + lex.act = 19 + goto st166 + tr337: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:219 + lex.act = 20 + goto st166 + tr344: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:244 + lex.act = 45 + goto st166 + tr348: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:220 + lex.act = 21 + goto st166 + tr350: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:221 + lex.act = 22 + goto st166 + tr354: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:222 + lex.act = 23 + goto st166 + tr358: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:223 + lex.act = 24 + goto st166 + tr361: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:226 + lex.act = 27 + goto st166 + tr367: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:224 + lex.act = 25 + goto st166 + tr371: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:225 + lex.act = 26 + goto st166 + tr372: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:238 + lex.act = 39 + goto st166 + tr380: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:227 + lex.act = 28 + goto st166 + tr385: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:229 + lex.act = 30 + goto st166 + tr388: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:230 + lex.act = 31 + goto st166 + tr400: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:231 + lex.act = 32 + goto st166 + tr407: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:233 + lex.act = 34 + goto st166 + tr408: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:234 + lex.act = 35 + goto st166 + tr413: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:235 + lex.act = 36 + goto st166 + tr417: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:236 + lex.act = 37 + goto st166 + tr419: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:237 + lex.act = 38 + goto st166 + tr425: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:239 + lex.act = 40 + goto st166 + tr427: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:245 + lex.act = 46 + goto st166 + tr434: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:241 + lex.act = 42 + goto st166 + tr440: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:243 + lex.act = 44 + goto st166 + tr446: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:246 + lex.act = 47 + goto st166 + tr448: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:247 + lex.act = 48 + goto st166 + tr449: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:248 + lex.act = 49 + goto st166 + tr460: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:250 + lex.act = 51 + goto st166 + tr473: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:273 + lex.act = 74 + goto st166 + tr481: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:251 + lex.act = 52 + goto st166 + tr485: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:252 + lex.act = 53 + goto st166 + tr491: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:253 + lex.act = 54 + goto st166 + tr494: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:249 + lex.act = 50 + goto st166 + tr497: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:254 + lex.act = 55 + goto st166 + tr506: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:255 + lex.act = 56 + goto st166 + tr507: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:285 + lex.act = 86 + goto st166 + tr508: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:287 + lex.act = 88 + goto st166 + tr515: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:258 + lex.act = 59 + goto st166 + tr518: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:256 + lex.act = 57 + goto st166 + tr524: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:259 + lex.act = 60 + goto st166 + tr528: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:257 + lex.act = 58 + goto st166 + tr541: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:275 + lex.act = 76 + goto st166 + tr544: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:260 + lex.act = 61 + goto st166 + tr550: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:261 + lex.act = 62 + goto st166 + tr554: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:262 + lex.act = 63 + goto st166 + tr559: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:263 + lex.act = 64 + goto st166 + tr561: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:265 + lex.act = 66 + goto st166 + tr563: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:264 + lex.act = 65 + goto st166 + tr568: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:266 + lex.act = 67 + goto st166 + tr569: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:267 + lex.act = 68 + goto st166 + tr571: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:268 + lex.act = 69 + goto st166 + tr575: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:269 + lex.act = 70 + goto st166 + tr577: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:288 + lex.act = 89 + goto st166 + tr586: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:270 + lex.act = 71 + goto st166 + tr602: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:276 + lex.act = 77 + goto st166 + tr606: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:277 + lex.act = 78 + goto st166 + tr612: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:278 + lex.act = 79 + goto st166 + tr620: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:279 + lex.act = 80 + goto st166 + tr632: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:284 + lex.act = 85 + goto st166 + tr637: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:280 + lex.act = 81 + goto st166 + tr644: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:282 + lex.act = 83 + goto st166 + tr654: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:281 + lex.act = 82 + goto st166 + tr660: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:283 + lex.act = 84 + goto st166 + st166: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof166 + } + st_case_166: + // line scanner/scanner.go:6259 + if lex.data[(lex.p)] == 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 tr211 + st167: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof167 + } + st_case_167: + switch lex.data[(lex.p)] { + case 83: + goto st168 + case 96: + goto tr303 + case 115: + goto st168 + } + 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 + st168: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof168 + } + st_case_168: + switch lex.data[(lex.p)] { + case 84: + goto st169 + case 96: + goto tr303 + case 116: + goto st169 + } + 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 + st169: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof169 + } + st_case_169: + switch lex.data[(lex.p)] { + case 82: + goto st170 + case 96: + goto tr303 + case 114: + goto st170 + } + 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 + st170: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof170 + } + st_case_170: + switch lex.data[(lex.p)] { + case 65: + goto st171 + case 96: + goto tr303 + case 97: + goto st171 + } + 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 + st171: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof171 + } + st_case_171: + switch lex.data[(lex.p)] { + case 67: + goto st172 + case 96: + goto tr303 + case 99: + goto st172 + } + 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 + st172: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof172 + } + st_case_172: + switch lex.data[(lex.p)] { + case 84: + goto tr313 + case 96: + goto tr303 + case 116: + goto tr313 + } + 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 + st173: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof173 + } + st_case_173: + switch lex.data[(lex.p)] { + case 68: + goto tr314 + case 96: + goto tr303 + case 100: + goto tr314 + } + 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 + st174: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof174 + } + st_case_174: + switch lex.data[(lex.p)] { + case 82: + goto st175 + case 96: + goto tr303 + case 114: + goto st175 + } + 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 + st175: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof175 + } + st_case_175: + switch lex.data[(lex.p)] { + case 65: + goto st176 + case 96: + goto tr303 + case 97: + goto st176 + } + 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 + st176: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof176 + } + st_case_176: + switch lex.data[(lex.p)] { + case 89: + goto tr317 + case 96: + goto tr303 + case 121: + goto tr317 + } + 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 + tr205: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:357 + lex.act = 135 + goto st177 + st177: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof177 + } + st_case_177: + // line scanner/scanner.go:6603 + switch lex.data[(lex.p)] { + case 34: + goto st7 + case 60: + goto st91 + case 82: + goto st178 + case 96: + goto tr303 + case 114: + goto st178 + } + 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 + 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 + } + st_case_178: + switch lex.data[(lex.p)] { + case 69: + goto st179 + case 96: + goto tr303 + case 101: + goto st179 + } + 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 + st179: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof179 + } + st_case_179: + switch lex.data[(lex.p)] { + case 65: + goto st180 + case 96: + goto tr303 + case 97: + goto st180 + } + 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 + st180: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof180 + } + st_case_180: + switch lex.data[(lex.p)] { + case 75: + goto tr322 + case 96: + goto tr303 + case 107: + goto tr322 + } + 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 + st181: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof181 + } + st_case_181: + switch lex.data[(lex.p)] { + case 65: + goto st182 + case 70: + goto st191 + case 76: + goto st198 + case 79: + goto st203 + case 96: + 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 tr303 + } + case 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 + st182: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof182 + } + st_case_182: + switch lex.data[(lex.p)] { + case 76: + goto st183 + case 83: + goto st188 + case 84: + goto st189 + case 96: + 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 tr303 + } + case 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 + st183: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof183 + } + st_case_183: + switch lex.data[(lex.p)] { + case 76: + goto st184 + case 96: + goto tr303 + case 108: + goto st184 + } + 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 + st184: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof184 + } + st_case_184: + switch lex.data[(lex.p)] { + case 65: + goto st185 + case 96: + goto tr303 + case 97: + goto st185 + } + 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 + st185: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof185 + } + st_case_185: + switch lex.data[(lex.p)] { + case 66: + goto st186 + case 96: + goto tr303 + case 98: + goto st186 + } + 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 + st186: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof186 + } + st_case_186: + switch lex.data[(lex.p)] { + case 76: + goto st187 + case 96: + goto tr303 + case 108: + goto st187 + } + 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 + st187: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof187 + } + st_case_187: + switch lex.data[(lex.p)] { + case 69: + goto tr334 + case 96: + goto tr303 + case 101: + goto tr334 + } + 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 + st188: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof188 + } + st_case_188: + switch lex.data[(lex.p)] { + case 69: + goto tr335 + case 96: + goto tr303 + case 101: + goto tr335 + } + 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 + st189: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof189 + } + st_case_189: + switch lex.data[(lex.p)] { + case 67: + goto st190 + case 96: + goto tr303 + case 99: + goto st190 + } + 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 + st190: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof190 + } + st_case_190: + switch lex.data[(lex.p)] { + case 72: + goto tr337 + case 96: + goto tr303 + case 104: + goto tr337 + } + 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 + st191: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof191 + } + st_case_191: + switch lex.data[(lex.p)] { + case 85: + goto st192 + case 96: + goto tr303 + case 117: + goto st192 + } + 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 + st192: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof192 + } + st_case_192: + switch lex.data[(lex.p)] { + case 78: + goto st193 + case 96: + goto tr303 + case 110: + goto st193 + } + 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 + st193: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof193 + } + st_case_193: + switch lex.data[(lex.p)] { + case 67: + goto st194 + case 96: + goto tr303 + case 99: + goto st194 + } + 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 + st194: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof194 + } + st_case_194: + switch lex.data[(lex.p)] { + case 84: + goto st195 + case 96: + goto tr303 + case 116: + goto st195 + } + 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 + st195: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof195 + } + st_case_195: + switch lex.data[(lex.p)] { + case 73: + goto st196 + case 96: + goto tr303 + case 105: + goto st196 + } + 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 + st196: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof196 + } + st_case_196: + switch lex.data[(lex.p)] { + case 79: + goto st197 + case 96: + goto tr303 + case 111: + goto st197 + } + 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 + st197: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof197 + } + st_case_197: + switch lex.data[(lex.p)] { + case 78: + goto tr344 + case 96: + goto tr303 + case 110: + goto tr344 + } + 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 + st198: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof198 + } + st_case_198: + switch lex.data[(lex.p)] { + case 65: + goto st199 + case 79: + goto st201 + case 96: + goto tr303 + case 97: + goto st199 + case 111: + goto st201 + } + 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 + st199: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof199 + } + st_case_199: + switch lex.data[(lex.p)] { + case 83: + goto st200 + case 96: + goto tr303 + case 115: + goto st200 + } + 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 + st200: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof200 + } + st_case_200: + switch lex.data[(lex.p)] { + case 83: + goto tr348 + case 96: + goto tr303 + case 115: + goto tr348 + } + 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 + st201: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof201 + } + st_case_201: + switch lex.data[(lex.p)] { + case 78: + goto st202 + case 96: + goto tr303 + case 110: + goto st202 + } + 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 + st202: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof202 + } + st_case_202: + switch lex.data[(lex.p)] { + case 69: + goto tr350 + case 96: + goto tr303 + case 101: + goto tr350 + } + 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 + st203: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof203 + } + st_case_203: + switch lex.data[(lex.p)] { + case 78: + goto st204 + case 96: + goto tr303 + case 110: + goto st204 + } + 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 + st204: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof204 + } + st_case_204: + switch lex.data[(lex.p)] { + case 83: + goto st205 + case 84: + goto st206 + case 96: + goto tr303 + case 115: + goto st205 + case 116: + goto st206 + } + 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 + st205: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof205 + } + st_case_205: + switch lex.data[(lex.p)] { + case 84: + goto tr354 + case 96: + goto tr303 + case 116: + goto tr354 + } + 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 + st206: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof206 + } + st_case_206: + switch lex.data[(lex.p)] { + case 73: + goto st207 + case 96: + goto tr303 + case 105: + goto st207 + } + 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 + st207: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof207 + } + st_case_207: + switch lex.data[(lex.p)] { + case 78: + goto st208 + case 96: + goto tr303 + case 110: + goto st208 + } + 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 + st208: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof208 + } + st_case_208: + switch lex.data[(lex.p)] { + case 85: + goto st209 + case 96: + goto tr303 + case 117: + goto st209 + } + 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 + st209: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof209 + } + st_case_209: + switch lex.data[(lex.p)] { + case 69: + goto tr358 + case 96: + goto tr303 + case 101: + goto tr358 + } + 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 + st210: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof210 + } + st_case_210: + switch lex.data[(lex.p)] { + case 69: + goto st211 + case 73: + goto st220 + case 79: + goto tr361 + case 96: + 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 tr303 + } + case 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 + st211: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof211 + } + st_case_211: + switch lex.data[(lex.p)] { + case 67: + goto st212 + case 70: + goto st216 + case 96: + goto tr303 + case 99: + goto st212 + case 102: + goto st216 + } + 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 + st212: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof212 + } + st_case_212: + switch lex.data[(lex.p)] { + case 76: + goto st213 + case 96: + goto tr303 + case 108: + goto st213 + } + 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 + st213: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof213 + } + st_case_213: + switch lex.data[(lex.p)] { + case 65: + goto st214 + case 96: + goto tr303 + case 97: + goto st214 + } + 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 + st214: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof214 + } + st_case_214: + switch lex.data[(lex.p)] { + case 82: + goto st215 + case 96: + goto tr303 + case 114: + goto st215 + } + 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 + st215: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof215 + } + st_case_215: + switch lex.data[(lex.p)] { + case 69: + goto tr367 + case 96: + goto tr303 + case 101: + goto tr367 + } + 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 + st216: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof216 + } + st_case_216: + switch lex.data[(lex.p)] { + case 65: + goto st217 + case 96: + goto tr303 + case 97: + goto st217 + } + 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 + st217: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof217 + } + st_case_217: + switch lex.data[(lex.p)] { + case 85: + goto st218 + case 96: + goto tr303 + case 117: + goto st218 + } + 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 + st218: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof218 + } + st_case_218: + switch lex.data[(lex.p)] { + case 76: + goto st219 + case 96: + goto tr303 + case 108: + goto st219 + } + 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 + st219: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof219 + } + st_case_219: + switch lex.data[(lex.p)] { + case 84: + goto tr371 + case 96: + goto tr303 + case 116: + goto tr371 + } + 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 + st220: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof220 + } + st_case_220: + switch lex.data[(lex.p)] { + case 69: + goto tr372 + case 96: + goto tr303 + case 101: + goto tr372 + } + 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 + st221: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof221 + } + st_case_221: + switch lex.data[(lex.p)] { + 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 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 tr303 + } + case 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 + st222: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof222 + } + st_case_222: + switch lex.data[(lex.p)] { + case 72: + goto st223 + case 96: + goto tr303 + case 104: + goto st223 + } + 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 + st223: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof223 + } + st_case_223: + switch lex.data[(lex.p)] { + case 79: + goto tr380 + case 96: + goto tr303 + case 111: + goto tr380 + } + 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 + st224: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof224 + } + st_case_224: + switch lex.data[(lex.p)] { + case 83: + goto st225 + case 96: + goto tr303 + case 115: + goto st225 + } + 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 + st225: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof225 + } + st_case_225: + switch lex.data[(lex.p)] { + case 69: + goto st226 + case 96: + goto tr303 + case 101: + goto st226 + } + 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 + st226: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof226 + } + st_case_226: + switch lex.data[(lex.p)] { + case 73: + goto st227 + case 96: + goto tr383 + case 105: + goto st227 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + 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 tr383 + } + case lex.data[(lex.p)] >= 91: + goto tr383 + } + default: + goto tr383 + } + goto tr211 + st227: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof227 + } + st_case_227: + switch lex.data[(lex.p)] { + case 70: + goto tr385 + case 96: + goto tr303 + case 102: + goto tr385 + } + 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 + st228: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof228 + } + st_case_228: + switch lex.data[(lex.p)] { + case 80: + goto st229 + case 96: + goto tr303 + case 112: + goto st229 + } + 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 + st229: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof229 + } + st_case_229: + switch lex.data[(lex.p)] { + case 84: + goto st230 + case 96: + goto tr303 + case 116: + goto st230 + } + 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 + st230: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof230 + } + st_case_230: + switch lex.data[(lex.p)] { + case 89: + goto tr388 + case 96: + goto tr303 + case 121: + goto tr388 + } + 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 + st231: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof231 + } + st_case_231: + switch lex.data[(lex.p)] { + case 68: + goto st232 + case 96: + goto tr303 + case 100: + goto st232 + } + 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 + st232: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof232 + } + st_case_232: + switch lex.data[(lex.p)] { + case 68: + goto st233 + case 70: + goto st239 + case 73: + goto st245 + case 83: + goto st246 + case 87: + goto st251 + case 96: + 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 tr303 + } + case 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 + st233: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof233 + } + st_case_233: + switch lex.data[(lex.p)] { + case 69: + goto st234 + case 96: + goto tr303 + case 101: + goto st234 + } + 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 + st234: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof234 + } + st_case_234: + switch lex.data[(lex.p)] { + case 67: + goto st235 + case 96: + goto tr303 + case 99: + goto st235 + } + 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 + st235: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof235 + } + st_case_235: + switch lex.data[(lex.p)] { + case 76: + goto st236 + case 96: + goto tr303 + case 108: + goto st236 + } + 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 + st236: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof236 + } + st_case_236: + switch lex.data[(lex.p)] { + case 65: + goto st237 + case 96: + goto tr303 + case 97: + goto st237 + } + 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 + st237: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof237 + } + st_case_237: + switch lex.data[(lex.p)] { + case 82: + goto st238 + case 96: + goto tr303 + case 114: + goto st238 + } + 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 + st238: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof238 + } + st_case_238: + switch lex.data[(lex.p)] { + case 69: + goto tr400 + case 96: + goto tr303 + case 101: + goto tr400 + } + 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 + st239: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof239 + } + st_case_239: + switch lex.data[(lex.p)] { + case 79: + goto st240 + case 96: + goto tr303 + case 111: + goto st240 + } + 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 + st240: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof240 + } + st_case_240: + switch lex.data[(lex.p)] { + case 82: + goto st241 + case 96: + goto tr303 + case 114: + goto st241 + } + 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 + st241: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof241 + } + st_case_241: + switch lex.data[(lex.p)] { + case 69: + goto st242 + case 96: + goto tr403 + case 101: + goto st242 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + 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 tr403 + } + case lex.data[(lex.p)] >= 91: + goto tr403 + } + default: + goto tr403 + } + goto tr211 + st242: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof242 + } + st_case_242: + switch lex.data[(lex.p)] { + case 65: + goto st243 + case 96: + goto tr303 + case 97: + goto st243 + } + 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 + st243: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof243 + } + st_case_243: + switch lex.data[(lex.p)] { + case 67: + goto st244 + case 96: + goto tr303 + case 99: + goto st244 + } + 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 + st244: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof244 + } + st_case_244: + switch lex.data[(lex.p)] { + case 72: + goto tr407 + case 96: + goto tr303 + case 104: + goto tr407 + } + 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 + st245: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof245 + } + st_case_245: + switch lex.data[(lex.p)] { + case 70: + goto tr408 + case 96: + goto tr303 + case 102: + goto tr408 + } + 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 + st246: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof246 + } + st_case_246: + switch lex.data[(lex.p)] { + case 87: + goto st247 + case 96: + goto tr303 + case 119: + goto st247 + } + 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 + st247: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof247 + } + st_case_247: + switch lex.data[(lex.p)] { + case 73: + goto st248 + case 96: + goto tr303 + case 105: + goto st248 + } + 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 + st248: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof248 + } + st_case_248: + switch lex.data[(lex.p)] { + case 84: + goto st249 + case 96: + goto tr303 + case 116: + goto st249 + } + 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 + st249: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof249 + } + st_case_249: + switch lex.data[(lex.p)] { + case 67: + goto st250 + case 96: + goto tr303 + case 99: + goto st250 + } + 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 + st250: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof250 + } + st_case_250: + switch lex.data[(lex.p)] { + case 72: + goto tr413 + case 96: + goto tr303 + case 104: + goto tr413 + } + 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 + st251: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof251 + } + st_case_251: + switch lex.data[(lex.p)] { + case 72: + goto st252 + case 96: + goto tr303 + case 104: + goto st252 + } + 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 + st252: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof252 + } + st_case_252: + switch lex.data[(lex.p)] { + case 73: + goto st253 + case 96: + goto tr303 + case 105: + goto st253 + } + 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 + st253: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof253 + } + st_case_253: + switch lex.data[(lex.p)] { + case 76: + goto st254 + case 96: + goto tr303 + case 108: + goto st254 + } + 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 + st254: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof254 + } + st_case_254: + switch lex.data[(lex.p)] { + case 69: + goto tr417 + case 96: + goto tr303 + case 101: + goto tr417 + } + 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 + st255: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof255 + } + st_case_255: + switch lex.data[(lex.p)] { + case 65: + goto st256 + case 96: + goto tr303 + case 97: + goto st256 + } + 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 + st256: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof256 + } + st_case_256: + switch lex.data[(lex.p)] { + case 76: + goto tr419 + case 96: + goto tr303 + case 108: + goto tr419 + } + 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 + st257: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof257 + } + st_case_257: + switch lex.data[(lex.p)] { + case 73: + goto st258 + case 84: + goto st259 + case 96: + goto tr303 + case 105: + goto st258 + case 116: + goto st259 + } + 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 + st258: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof258 + } + st_case_258: + switch lex.data[(lex.p)] { + case 84: + goto tr372 + case 96: + goto tr303 + case 116: + goto tr372 + } + 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 + st259: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof259 + } + st_case_259: + switch lex.data[(lex.p)] { + case 69: + goto st260 + case 96: + goto tr303 + case 101: + goto st260 + } + 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 + st260: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof260 + } + st_case_260: + switch lex.data[(lex.p)] { + case 78: + goto st261 + case 96: + goto tr303 + case 110: + goto st261 + } + 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 + st261: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof261 + } + st_case_261: + switch lex.data[(lex.p)] { + case 68: + goto st262 + case 96: + goto tr303 + case 100: + goto st262 + } + 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 + st262: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof262 + } + st_case_262: + switch lex.data[(lex.p)] { + case 83: + goto tr425 + case 96: + goto tr303 + case 115: + goto tr425 + } + 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 + st263: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof263 + } + st_case_263: + switch lex.data[(lex.p)] { + case 73: + goto st264 + case 78: + goto tr427 + case 79: + goto st269 + case 85: + goto st192 + case 96: + 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 tr303 + } + case 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 + st264: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof264 + } + st_case_264: + switch lex.data[(lex.p)] { + case 78: + goto st265 + case 96: + goto tr303 + case 110: + goto st265 + } + 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 + st265: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof265 + } + st_case_265: + switch lex.data[(lex.p)] { + case 65: + goto st266 + case 96: + goto tr303 + case 97: + goto st266 + } + 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 + st266: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof266 + } + st_case_266: + switch lex.data[(lex.p)] { + case 76: + goto st267 + case 96: + goto tr303 + case 108: + goto st267 + } + 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 + st267: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof267 + } + st_case_267: + switch lex.data[(lex.p)] { + case 76: + goto st268 + case 96: + goto tr432 + case 108: + goto st268 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + 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 tr432 + } + case lex.data[(lex.p)] >= 91: + goto tr432 + } + default: + goto tr432 + } + goto tr211 + st268: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof268 + } + st_case_268: + switch lex.data[(lex.p)] { + case 89: + goto tr434 + case 96: + goto tr303 + case 121: + goto tr434 + } + 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 + st269: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof269 + } + st_case_269: + switch lex.data[(lex.p)] { + case 82: + goto st270 + case 96: + goto tr303 + case 114: + goto st270 + } + 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 + st270: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof270 + } + st_case_270: + switch lex.data[(lex.p)] { + case 69: + goto st271 + case 96: + goto tr436 + case 101: + goto st271 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + 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 tr436 + } + case lex.data[(lex.p)] >= 91: + goto tr436 + } + default: + goto tr436 + } + goto tr211 + st271: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof271 + } + st_case_271: + switch lex.data[(lex.p)] { + case 65: + goto st272 + case 96: + goto tr303 + case 97: + goto st272 + } + 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 + st272: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof272 + } + st_case_272: + switch lex.data[(lex.p)] { + case 67: + goto st273 + case 96: + goto tr303 + case 99: + goto st273 + } + 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 + st273: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof273 + } + st_case_273: + switch lex.data[(lex.p)] { + case 72: + goto tr440 + case 96: + goto tr303 + case 104: + goto tr440 + } + 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 + st274: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof274 + } + st_case_274: + switch lex.data[(lex.p)] { + case 76: + goto st275 + case 79: + goto st279 + case 96: + goto tr303 + case 108: + goto st275 + case 111: + goto st279 + } + 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 + st275: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof275 + } + st_case_275: + switch lex.data[(lex.p)] { + case 79: + goto st276 + case 96: + goto tr303 + case 111: + goto st276 + } + 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 + st276: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof276 + } + st_case_276: + switch lex.data[(lex.p)] { + case 66: + goto st277 + case 96: + goto tr303 + case 98: + goto st277 + } + 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 + st277: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof277 + } + st_case_277: + switch lex.data[(lex.p)] { + case 65: + goto st278 + case 96: + goto tr303 + case 97: + goto st278 + } + 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 + st278: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof278 + } + st_case_278: + switch lex.data[(lex.p)] { + case 76: + goto tr446 + case 96: + goto tr303 + case 108: + goto tr446 + } + 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 + st279: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof279 + } + st_case_279: + switch lex.data[(lex.p)] { + case 84: + goto st280 + case 96: + goto tr303 + case 116: + goto st280 + } + 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 + st280: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof280 + } + st_case_280: + switch lex.data[(lex.p)] { + case 79: + goto tr448 + case 96: + goto tr303 + case 111: + goto tr448 + } + 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 + st281: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof281 + } + st_case_281: + switch lex.data[(lex.p)] { + case 70: + goto tr449 + case 77: + goto st282 + case 78: + goto st290 + case 83: + goto st317 + case 96: + goto tr303 + case 102: + goto tr449 + case 109: + goto st282 + case 110: + goto st290 + case 115: + goto st317 + } + 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 + st282: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof282 + } + st_case_282: + switch lex.data[(lex.p)] { + case 80: + goto st283 + case 96: + goto tr303 + case 112: + goto st283 + } + 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 + st283: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof283 + } + st_case_283: + switch lex.data[(lex.p)] { + case 76: + goto st284 + case 96: + goto tr303 + case 108: + goto st284 + } + 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 + st284: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof284 + } + st_case_284: + switch lex.data[(lex.p)] { + case 69: + goto st285 + case 96: + goto tr303 + case 101: + goto st285 + } + 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 + st285: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof285 + } + st_case_285: + switch lex.data[(lex.p)] { + case 77: + goto st286 + case 96: + goto tr303 + case 109: + goto st286 + } + 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 + st286: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof286 + } + st_case_286: + 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 tr303 + } + case 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 + st287: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof287 + } + st_case_287: + switch lex.data[(lex.p)] { + case 78: + goto st288 + case 96: + goto tr303 + case 110: + goto st288 + } + 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 + st288: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof288 + } + st_case_288: + switch lex.data[(lex.p)] { + case 84: + goto st289 + case 96: + goto tr303 + case 116: + goto st289 + } + 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 + st289: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof289 + } + st_case_289: + switch lex.data[(lex.p)] { + case 83: + goto tr460 + case 96: + goto tr303 + case 115: + goto tr460 + } + 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 + st290: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof290 + } + st_case_290: + switch lex.data[(lex.p)] { + case 67: + goto st291 + case 83: + goto st300 + case 84: + goto st311 + case 96: + 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 tr303 + } + case 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 + st291: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof291 + } + st_case_291: + switch lex.data[(lex.p)] { + case 76: + goto st292 + case 96: + goto tr303 + case 108: + goto st292 + } + 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 + st292: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof292 + } + st_case_292: + switch lex.data[(lex.p)] { + case 85: + goto st293 + case 96: + goto tr303 + case 117: + goto st293 + } + 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 + st293: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof293 + } + st_case_293: + switch lex.data[(lex.p)] { + case 68: + goto st294 + case 96: + goto tr303 + case 100: + goto st294 + } + 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 + st294: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof294 + } + st_case_294: + switch lex.data[(lex.p)] { + case 69: + goto st295 + case 96: + goto tr303 + case 101: + goto st295 + } + 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 + st295: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof295 + } + st_case_295: + if lex.data[(lex.p)] == 95 { + goto st296 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr468 + } + 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 tr468 + } + case lex.data[(lex.p)] >= 91: + goto tr468 + } + default: + goto tr468 + } + goto tr211 + st296: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof296 + } + st_case_296: + switch lex.data[(lex.p)] { + case 79: + goto st297 + case 96: + goto tr303 + case 111: + goto st297 + } + 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 + st297: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof297 + } + st_case_297: + switch lex.data[(lex.p)] { + case 78: + goto st298 + case 96: + goto tr303 + case 110: + goto st298 + } + 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 + st298: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof298 + } + st_case_298: + switch lex.data[(lex.p)] { + case 67: + goto st299 + case 96: + goto tr303 + case 99: + goto st299 + } + 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 + st299: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof299 + } + st_case_299: + switch lex.data[(lex.p)] { + case 69: + goto tr473 + case 96: + goto tr303 + case 101: + goto tr473 + } + 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 + st300: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof300 + } + st_case_300: + switch lex.data[(lex.p)] { + case 84: + goto st301 + case 96: + goto tr303 + case 116: + goto st301 + } + 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 + st301: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof301 + } + st_case_301: + switch lex.data[(lex.p)] { + case 65: + goto st302 + case 69: + goto st307 + case 96: + goto tr303 + case 97: + goto st302 + case 101: + goto st307 + } + 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 + st302: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof302 + } + st_case_302: + switch lex.data[(lex.p)] { + case 78: + goto st303 + case 96: + goto tr303 + case 110: + goto st303 + } + 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 + st303: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof303 + } + st_case_303: + switch lex.data[(lex.p)] { + case 67: + goto st304 + case 96: + goto tr303 + case 99: + goto st304 + } + 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 + st304: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof304 + } + st_case_304: + switch lex.data[(lex.p)] { + case 69: + goto st305 + case 96: + goto tr303 + case 101: + goto st305 + } + 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 + st305: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof305 + } + st_case_305: + switch lex.data[(lex.p)] { + case 79: + goto st306 + case 96: + goto tr303 + case 111: + goto st306 + } + 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 + st306: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof306 + } + st_case_306: + switch lex.data[(lex.p)] { + case 70: + goto tr481 + case 96: + goto tr303 + case 102: + goto tr481 + } + 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 + st307: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof307 + } + st_case_307: + switch lex.data[(lex.p)] { + case 65: + goto st308 + case 96: + goto tr303 + case 97: + goto st308 + } + 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 + st308: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof308 + } + st_case_308: + switch lex.data[(lex.p)] { + case 68: + goto st309 + case 96: + goto tr303 + case 100: + goto st309 + } + 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 + st309: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof309 + } + st_case_309: + switch lex.data[(lex.p)] { + case 79: + goto st310 + case 96: + goto tr303 + case 111: + goto st310 + } + 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 + st310: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof310 + } + st_case_310: + switch lex.data[(lex.p)] { + case 70: + goto tr485 + case 96: + goto tr303 + case 102: + goto tr485 + } + 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 + st311: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof311 + } + st_case_311: + switch lex.data[(lex.p)] { + case 69: + goto st312 + case 96: + goto tr303 + case 101: + goto st312 + } + 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 + st312: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof312 + } + st_case_312: + switch lex.data[(lex.p)] { + case 82: + goto st313 + case 96: + goto tr303 + case 114: + goto st313 + } + 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 + st313: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof313 + } + st_case_313: + switch lex.data[(lex.p)] { + case 70: + goto st314 + case 96: + goto tr303 + case 102: + goto st314 + } + 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 + st314: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof314 + } + st_case_314: + switch lex.data[(lex.p)] { + case 65: + goto st315 + case 96: + goto tr303 + case 97: + goto st315 + } + 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 + st315: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof315 + } + st_case_315: + switch lex.data[(lex.p)] { + case 67: + goto st316 + case 96: + goto tr303 + case 99: + goto st316 + } + 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 + st316: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof316 + } + st_case_316: + switch lex.data[(lex.p)] { + case 69: + goto tr491 + case 96: + goto tr303 + case 101: + goto tr491 + } + 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 + st317: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof317 + } + st_case_317: + switch lex.data[(lex.p)] { + case 83: + goto st318 + case 96: + goto tr303 + case 115: + goto st318 + } + 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 + st318: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof318 + } + st_case_318: + switch lex.data[(lex.p)] { + case 69: + goto st319 + case 96: + goto tr303 + case 101: + goto st319 + } + 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 + st319: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof319 + } + st_case_319: + switch lex.data[(lex.p)] { + case 84: + goto tr494 + case 96: + goto tr303 + case 116: + goto tr494 + } + 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 + st320: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof320 + } + st_case_320: + switch lex.data[(lex.p)] { + case 73: + goto st321 + case 96: + goto tr303 + case 105: + goto st321 + } + 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 + st321: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof321 + } + st_case_321: + switch lex.data[(lex.p)] { + case 83: + goto st322 + case 96: + goto tr303 + case 115: + goto st322 + } + 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 + st322: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof322 + } + st_case_322: + switch lex.data[(lex.p)] { + case 84: + goto tr497 + case 96: + goto tr303 + case 116: + goto tr497 + } + 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 + st323: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof323 + } + st_case_323: + switch lex.data[(lex.p)] { + case 65: + goto st324 + case 69: + goto st331 + case 96: + goto tr303 + case 97: + goto st324 + case 101: + goto st331 + } + 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 + st324: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof324 + } + st_case_324: + switch lex.data[(lex.p)] { + case 77: + goto st325 + case 96: + goto tr303 + case 109: + goto st325 + } + 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 + st325: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof325 + } + st_case_325: + switch lex.data[(lex.p)] { + case 69: + goto st326 + case 96: + goto tr303 + case 101: + goto st326 + } + 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 + st326: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof326 + } + st_case_326: + switch lex.data[(lex.p)] { + case 83: + goto st327 + case 96: + goto tr303 + case 115: + goto st327 + } + 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 + st327: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof327 + } + st_case_327: + switch lex.data[(lex.p)] { + case 80: + goto st328 + case 96: + goto tr303 + case 112: + goto st328 + } + 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 + st328: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof328 + } + st_case_328: + switch lex.data[(lex.p)] { + case 65: + goto st329 + case 96: + goto tr303 + case 97: + goto st329 + } + 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 + st329: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof329 + } + st_case_329: + switch lex.data[(lex.p)] { + case 67: + goto st330 + case 96: + goto tr303 + case 99: + goto st330 + } + 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 + st330: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof330 + } + st_case_330: + switch lex.data[(lex.p)] { + case 69: + goto tr506 + case 96: + goto tr303 + case 101: + goto tr506 + } + 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 + st331: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof331 + } + st_case_331: + switch lex.data[(lex.p)] { + case 87: + goto tr507 + case 96: + goto tr303 + case 119: + goto tr507 + } + 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 + st332: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof332 + } + st_case_332: + switch lex.data[(lex.p)] { + case 82: + goto tr508 + case 96: + goto tr303 + case 114: + goto tr508 + } + 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 + st333: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof333 + } + st_case_333: + switch lex.data[(lex.p)] { + case 82: + goto st334 + case 85: + goto st346 + case 96: + goto tr303 + case 114: + goto st334 + case 117: + goto st346 + } + 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 + st334: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof334 + } + st_case_334: + switch lex.data[(lex.p)] { + case 73: + goto st335 + case 79: + goto st340 + case 96: + goto tr303 + case 105: + goto st335 + case 111: + goto st340 + } + 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 + st335: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof335 + } + st_case_335: + switch lex.data[(lex.p)] { + case 78: + goto st336 + case 86: + goto st337 + case 96: + goto tr303 + case 110: + goto st336 + case 118: + goto st337 + } + 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 + st336: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof336 + } + st_case_336: + switch lex.data[(lex.p)] { + case 84: + goto tr515 + case 96: + goto tr303 + case 116: + goto tr515 + } + 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 + st337: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof337 + } + st_case_337: + switch lex.data[(lex.p)] { + case 65: + goto st338 + case 96: + goto tr303 + case 97: + goto st338 + } + 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 + st338: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof338 + } + st_case_338: + switch lex.data[(lex.p)] { + case 84: + goto st339 + case 96: + goto tr303 + case 116: + goto st339 + } + 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 + st339: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof339 + } + st_case_339: + switch lex.data[(lex.p)] { + case 69: + goto tr518 + case 96: + goto tr303 + case 101: + goto tr518 + } + 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 + st340: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof340 + } + st_case_340: + switch lex.data[(lex.p)] { + case 84: + goto st341 + case 96: + goto tr303 + case 116: + goto st341 + } + 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 + st341: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof341 + } + st_case_341: + switch lex.data[(lex.p)] { + case 69: + goto st342 + case 96: + goto tr303 + case 101: + goto st342 + } + 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 + st342: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof342 + } + st_case_342: + switch lex.data[(lex.p)] { + case 67: + goto st343 + case 96: + goto tr303 + case 99: + goto st343 + } + 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 + st343: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof343 + } + st_case_343: + switch lex.data[(lex.p)] { + case 84: + goto st344 + case 96: + goto tr303 + case 116: + goto st344 + } + 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 + st344: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof344 + } + st_case_344: + switch lex.data[(lex.p)] { + case 69: + goto st345 + case 96: + goto tr303 + case 101: + goto st345 + } + 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 + st345: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof345 + } + st_case_345: + switch lex.data[(lex.p)] { + case 68: + goto tr524 + case 96: + goto tr303 + case 100: + goto tr524 + } + 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 + st346: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof346 + } + st_case_346: + switch lex.data[(lex.p)] { + case 66: + goto st347 + case 96: + goto tr303 + case 98: + goto st347 + } + 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 + st347: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof347 + } + st_case_347: + 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 tr303 + } + case 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 + st348: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof348 + } + st_case_348: + switch lex.data[(lex.p)] { + case 73: + goto st349 + case 96: + goto tr303 + case 105: + goto st349 + } + 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 + st349: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof349 + } + st_case_349: + switch lex.data[(lex.p)] { + case 67: + goto tr528 + case 96: + goto tr303 + case 99: + goto tr528 + } + 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 + st350: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof350 + } + st_case_350: + switch lex.data[(lex.p)] { + case 69: + goto st351 + case 96: + goto tr303 + case 101: + goto st351 + } + 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 + st351: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof351 + } + st_case_351: + switch lex.data[(lex.p)] { + case 81: + goto st352 + case 84: + goto st361 + case 96: + goto tr303 + case 113: + goto st352 + case 116: + goto st361 + } + 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 + st352: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof352 + } + st_case_352: + switch lex.data[(lex.p)] { + case 85: + goto st353 + case 96: + goto tr303 + case 117: + goto st353 + } + 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 + st353: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof353 + } + st_case_353: + switch lex.data[(lex.p)] { + case 73: + goto st354 + case 96: + goto tr303 + case 105: + goto st354 + } + 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 + st354: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof354 + } + st_case_354: + switch lex.data[(lex.p)] { + case 82: + goto st355 + case 96: + goto tr303 + case 114: + goto st355 + } + 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 + st355: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof355 + } + st_case_355: + switch lex.data[(lex.p)] { + case 69: + goto st356 + case 96: + goto tr303 + case 101: + goto st356 + } + 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 + st356: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof356 + } + st_case_356: + if lex.data[(lex.p)] == 95 { + goto st357 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr536 + } + 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 tr536 + } + case lex.data[(lex.p)] >= 91: + goto tr536 + } + default: + goto tr536 + } + goto tr211 + st357: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof357 + } + st_case_357: + switch lex.data[(lex.p)] { + case 79: + goto st358 + case 96: + goto tr303 + case 111: + goto st358 + } + 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 + st358: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof358 + } + st_case_358: + switch lex.data[(lex.p)] { + case 78: + goto st359 + case 96: + goto tr303 + case 110: + goto st359 + } + 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 + st359: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof359 + } + st_case_359: + switch lex.data[(lex.p)] { + case 67: + goto st360 + case 96: + goto tr303 + case 99: + goto st360 + } + 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 + st360: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof360 + } + st_case_360: + switch lex.data[(lex.p)] { + case 69: + goto tr541 + case 96: + goto tr303 + case 101: + goto tr541 + } + 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 + st361: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof361 + } + st_case_361: + switch lex.data[(lex.p)] { + case 85: + goto st362 + case 96: + goto tr303 + case 117: + goto st362 + } + 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 + st362: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof362 + } + st_case_362: + switch lex.data[(lex.p)] { + case 82: + goto st363 + case 96: + goto tr303 + case 114: + goto st363 + } + 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 + st363: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof363 + } + st_case_363: + switch lex.data[(lex.p)] { + case 78: + goto tr544 + case 96: + goto tr303 + case 110: + goto tr544 + } + 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 + st364: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof364 + } + st_case_364: + switch lex.data[(lex.p)] { + case 84: + goto st365 + case 87: + goto st369 + case 96: + goto tr303 + case 116: + goto st365 + case 119: + goto st369 + } + 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 + st365: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof365 + } + st_case_365: + switch lex.data[(lex.p)] { + case 65: + goto st366 + case 96: + goto tr303 + case 97: + goto st366 + } + 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 + st366: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof366 + } + st_case_366: + switch lex.data[(lex.p)] { + case 84: + goto st367 + case 96: + goto tr303 + case 116: + goto st367 + } + 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 + st367: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof367 + } + st_case_367: + switch lex.data[(lex.p)] { + case 73: + goto st368 + case 96: + goto tr303 + case 105: + goto st368 + } + 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 + st368: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof368 + } + st_case_368: + switch lex.data[(lex.p)] { + case 67: + goto tr550 + case 96: + goto tr303 + case 99: + goto tr550 + } + 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 + st369: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof369 + } + st_case_369: + switch lex.data[(lex.p)] { + case 73: + goto st370 + case 96: + goto tr303 + case 105: + goto st370 + } + 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 + st370: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof370 + } + st_case_370: + switch lex.data[(lex.p)] { + case 84: + goto st371 + case 96: + goto tr303 + case 116: + goto st371 + } + 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 + st371: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof371 + } + st_case_371: + switch lex.data[(lex.p)] { + case 67: + goto st372 + case 96: + goto tr303 + case 99: + goto st372 + } + 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 + st372: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof372 + } + st_case_372: + switch lex.data[(lex.p)] { + case 72: + goto tr554 + case 96: + goto tr303 + case 104: + goto tr554 + } + 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 + st373: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof373 + } + st_case_373: + switch lex.data[(lex.p)] { + case 72: + goto st374 + case 82: + goto st377 + case 96: + goto tr303 + case 104: + goto st374 + case 114: + goto st377 + } + 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 + st374: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof374 + } + st_case_374: + switch lex.data[(lex.p)] { + case 82: + goto st375 + case 96: + goto tr303 + case 114: + goto st375 + } + 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 + st375: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof375 + } + st_case_375: + switch lex.data[(lex.p)] { + case 79: + goto st376 + case 96: + goto tr303 + case 111: + goto st376 + } + 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 + st376: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof376 + } + st_case_376: + switch lex.data[(lex.p)] { + case 87: + goto tr559 + case 96: + goto tr303 + case 119: + goto tr559 + } + 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 + st377: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof377 + } + st_case_377: + switch lex.data[(lex.p)] { + case 65: + goto st378 + case 89: + goto tr561 + case 96: + goto tr303 + case 97: + goto st378 + case 121: + goto tr561 + } + 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 + st378: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof378 + } + st_case_378: + switch lex.data[(lex.p)] { + case 73: + goto st379 + case 96: + goto tr303 + case 105: + goto st379 + } + 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 + st379: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof379 + } + st_case_379: + switch lex.data[(lex.p)] { + case 84: + goto tr563 + case 96: + goto tr303 + case 116: + goto tr563 + } + 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 + st380: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof380 + } + st_case_380: + switch lex.data[(lex.p)] { + case 78: + goto st381 + case 83: + goto st384 + case 96: + goto tr303 + case 110: + goto st381 + case 115: + goto st384 + } + 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 + st381: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof381 + } + st_case_381: + switch lex.data[(lex.p)] { + case 83: + goto st382 + case 96: + goto tr303 + case 115: + goto st382 + } + 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 + st382: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof382 + } + st_case_382: + switch lex.data[(lex.p)] { + case 69: + goto st383 + case 96: + goto tr303 + case 101: + goto st383 + } + 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 + st383: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof383 + } + st_case_383: + switch lex.data[(lex.p)] { + case 84: + goto tr568 + case 96: + goto tr303 + case 116: + goto tr568 + } + 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 + st384: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof384 + } + st_case_384: + switch lex.data[(lex.p)] { + case 69: + goto tr569 + case 96: + goto tr303 + case 101: + goto tr569 + } + 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 + st385: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof385 + } + st_case_385: + switch lex.data[(lex.p)] { + case 65: + goto st386 + case 96: + goto tr303 + case 97: + goto st386 + } + 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 + st386: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof386 + } + st_case_386: + switch lex.data[(lex.p)] { + case 82: + goto tr571 + case 96: + goto tr303 + case 114: + goto tr571 + } + 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 + st387: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof387 + } + st_case_387: + switch lex.data[(lex.p)] { + case 72: + goto st388 + case 96: + goto tr303 + case 104: + goto st388 + } + 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 + st388: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof388 + } + st_case_388: + switch lex.data[(lex.p)] { + case 73: + goto st389 + case 96: + goto tr303 + case 105: + goto st389 + } + 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 + st389: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof389 + } + st_case_389: + switch lex.data[(lex.p)] { + case 76: + goto st390 + case 96: + goto tr303 + case 108: + goto st390 + } + 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 + st390: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof390 + } + st_case_390: + switch lex.data[(lex.p)] { + case 69: + goto tr575 + case 96: + goto tr303 + case 101: + goto tr575 + } + 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 + st391: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof391 + } + st_case_391: + switch lex.data[(lex.p)] { + case 79: + goto st392 + case 96: + goto tr303 + case 111: + goto st392 + } + 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 + st392: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof392 + } + st_case_392: + switch lex.data[(lex.p)] { + case 82: + goto tr577 + case 96: + goto tr303 + case 114: + goto tr577 + } + 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: + 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 tr303 + } + case 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 + st394: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof394 + } + st_case_394: + switch lex.data[(lex.p)] { + case 69: + goto st395 + case 96: + goto tr303 + case 101: + goto st395 + } + 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 + st395: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof395 + } + st_case_395: + switch lex.data[(lex.p)] { + case 76: + goto st396 + case 96: + goto tr303 + case 108: + goto st396 + } + 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 + st396: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof396 + } + st_case_396: + switch lex.data[(lex.p)] { + case 68: + goto tr581 + case 96: + goto tr303 + case 100: + goto tr581 + } + 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 + 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:13597 + switch lex.data[(lex.p)] { + case 10: + goto st94 + case 13: + goto st95 + case 32: + goto st93 + case 70: + goto st398 + case 96: + goto tr582 + case 102: + goto st398 + } + 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 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 tr582 + } + default: + goto tr582 + } + default: + goto tr582 + } + 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:13648 + 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:13674 + 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:13700 + 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:13714 + 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 82: + goto st399 + case 96: + goto tr303 + case 114: + goto st399 + } + 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 + st399: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof399 + } + st_case_399: + 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 tr303 + } + case 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 + st400: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof400 + } + st_case_400: + 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 tr303 + } + case 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 + st401: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof401 + } + st_case_401: + if lex.data[(lex.p)] == 61 { + goto tr587 + } + goto tr239 + st402: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof402 + } + st_case_402: + if lex.data[(lex.p)] == 95 { + goto st403 + } + 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 + st403: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof403 + } + st_case_403: + 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 tr303 + } + case 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 + st404: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof404 + } + st_case_404: + 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 tr303 + } + case 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 + st405: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof405 + } + st_case_405: + switch lex.data[(lex.p)] { + case 65: + goto st406 + case 96: + goto tr303 + case 97: + goto st406 + } + 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 + st406: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof406 + } + st_case_406: + switch lex.data[(lex.p)] { + case 83: + goto st407 + case 96: + goto tr303 + case 115: + goto st407 + } + 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 + st407: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof407 + } + st_case_407: + switch lex.data[(lex.p)] { + case 83: + goto st408 + case 96: + goto tr303 + case 115: + goto st408 + } + 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 + st408: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof408 + } + st_case_408: + if lex.data[(lex.p)] == 95 { + goto st409 + } + 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 + st409: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof409 + } + st_case_409: + if lex.data[(lex.p)] == 95 { + goto tr602 + } + 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 + st410: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof410 + } + st_case_410: + switch lex.data[(lex.p)] { + case 73: + goto st411 + case 96: + goto tr303 + case 105: + goto st411 + } + 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 + st411: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof411 + } + st_case_411: + switch lex.data[(lex.p)] { + case 82: + goto st412 + case 96: + goto tr303 + case 114: + goto st412 + } + 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 + st412: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof412 + } + st_case_412: + if lex.data[(lex.p)] == 95 { + goto st413 + } + 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 + st413: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof413 + } + st_case_413: + if lex.data[(lex.p)] == 95 { + goto tr606 + } + 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 + st414: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof414 + } + st_case_414: + switch lex.data[(lex.p)] { + case 73: + goto st415 + case 85: + goto st419 + case 96: + goto tr303 + case 105: + goto st415 + case 117: + goto st419 + } + 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 + st415: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof415 + } + st_case_415: + switch lex.data[(lex.p)] { + case 76: + goto st416 + case 96: + goto tr303 + case 108: + goto st416 + } + 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 + st416: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof416 + } + st_case_416: + 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 tr303 + } + case 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 + st417: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof417 + } + st_case_417: + if lex.data[(lex.p)] == 95 { + goto st418 + } + 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 + st418: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof418 + } + st_case_418: + if lex.data[(lex.p)] == 95 { + goto tr612 + } + 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 + st419: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof419 + } + st_case_419: + switch lex.data[(lex.p)] { + case 78: + goto st420 + case 96: + goto tr303 + case 110: + goto st420 + } + 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 + st420: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof420 + } + st_case_420: + switch lex.data[(lex.p)] { + case 67: + goto st421 + case 96: + goto tr303 + case 99: + goto st421 + } + 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 + st421: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof421 + } + st_case_421: + 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 tr303 + } + case 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 + st422: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof422 + } + st_case_422: + switch lex.data[(lex.p)] { + case 73: + goto st423 + case 96: + goto tr303 + case 105: + goto st423 + } + 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 + st423: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof423 + } + st_case_423: + switch lex.data[(lex.p)] { + case 79: + goto st424 + case 96: + goto tr303 + case 111: + goto st424 + } + 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 + st424: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof424 + } + st_case_424: + switch lex.data[(lex.p)] { + case 78: + goto st425 + case 96: + goto tr303 + case 110: + goto st425 + } + 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 + st425: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof425 + } + st_case_425: + if lex.data[(lex.p)] == 95 { + goto st426 + } + 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 + st426: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof426 + } + st_case_426: + if lex.data[(lex.p)] == 95 { + goto tr620 + } + 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 + st427: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof427 + } + st_case_427: + switch lex.data[(lex.p)] { + case 65: + goto st428 + case 96: + goto tr303 + case 97: + goto st428 + } + 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 + st428: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof428 + } + st_case_428: + switch lex.data[(lex.p)] { + case 76: + goto st429 + case 96: + goto tr303 + case 108: + goto st429 + } + 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 + st429: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof429 + } + st_case_429: + switch lex.data[(lex.p)] { + case 84: + goto st430 + case 96: + goto tr303 + case 116: + goto st430 + } + 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 + st430: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof430 + } + st_case_430: + if lex.data[(lex.p)] == 95 { + goto st431 + } + 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 + st431: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof431 + } + st_case_431: + switch lex.data[(lex.p)] { + case 67: + goto st432 + case 96: + goto tr303 + case 99: + goto st432 + } + 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 + st432: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof432 + } + st_case_432: + switch lex.data[(lex.p)] { + case 79: + goto st433 + case 96: + goto tr303 + case 111: + goto st433 + } + 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 + st433: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof433 + } + st_case_433: + 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 tr303 + } + case 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 + st434: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof434 + } + st_case_434: + 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 tr303 + } + case 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 + st435: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof435 + } + st_case_435: + switch lex.data[(lex.p)] { + case 73: + goto st436 + case 96: + goto tr303 + case 105: + goto st436 + } + 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 + st436: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof436 + } + st_case_436: + switch lex.data[(lex.p)] { + case 76: + goto st437 + case 96: + goto tr303 + case 108: + goto st437 + } + 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 + st437: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof437 + } + st_case_437: + switch lex.data[(lex.p)] { + case 69: + goto st438 + case 96: + goto tr303 + case 101: + goto st438 + } + 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 + st438: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof438 + } + st_case_438: + switch lex.data[(lex.p)] { + case 82: + goto tr632 + case 96: + goto tr303 + case 114: + goto tr632 + } + 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 + st439: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof439 + } + st_case_439: + switch lex.data[(lex.p)] { + case 73: + goto st440 + case 96: + goto tr303 + case 105: + goto st440 + } + 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 + st440: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof440 + } + st_case_440: + 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 tr303 + } + case 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 + st441: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof441 + } + st_case_441: + 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 tr303 + } + case 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 + st442: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof442 + } + st_case_442: + if lex.data[(lex.p)] == 95 { + goto st443 + } + 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 + st443: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof443 + } + st_case_443: + if lex.data[(lex.p)] == 95 { + goto tr637 + } + 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 + st444: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof444 + } + st_case_444: + switch lex.data[(lex.p)] { + case 69: + goto st445 + case 96: + goto tr303 + case 101: + goto st445 + } + 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 + st445: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof445 + } + st_case_445: + switch lex.data[(lex.p)] { + case 84: + goto st446 + case 96: + goto tr303 + case 116: + goto st446 + } + 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 + st446: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof446 + } + st_case_446: + switch lex.data[(lex.p)] { + case 72: + goto st447 + case 96: + goto tr303 + case 104: + goto st447 + } + 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 + st447: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof447 + } + st_case_447: + switch lex.data[(lex.p)] { + case 79: + goto st448 + case 96: + goto tr303 + case 111: + goto st448 + } + 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 + st448: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof448 + } + st_case_448: + switch lex.data[(lex.p)] { + case 68: + goto st449 + case 96: + goto tr303 + case 100: + goto st449 + } + 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 + st449: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof449 + } + st_case_449: + if lex.data[(lex.p)] == 95 { + goto st450 + } + 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 + st450: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof450 + } + st_case_450: + if lex.data[(lex.p)] == 95 { + goto tr644 + } + 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 + st451: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof451 + } + st_case_451: + 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 tr303 + } + case 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 + st452: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof452 + } + st_case_452: + switch lex.data[(lex.p)] { + case 77: + goto st453 + case 96: + goto tr303 + case 109: + goto st453 + } + 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 + st453: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof453 + } + st_case_453: + switch lex.data[(lex.p)] { + case 69: + goto st454 + case 96: + goto tr303 + case 101: + goto st454 + } + 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 + st454: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof454 + } + st_case_454: + switch lex.data[(lex.p)] { + case 83: + goto st455 + case 96: + goto tr303 + case 115: + goto st455 + } + 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 + st455: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof455 + } + st_case_455: + switch lex.data[(lex.p)] { + case 80: + goto st456 + case 96: + goto tr303 + case 112: + goto st456 + } + 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 + st456: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof456 + } + st_case_456: + 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 tr303 + } + case 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 + st457: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof457 + } + st_case_457: + 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 tr303 + } + case 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 + st458: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof458 + } + st_case_458: + switch lex.data[(lex.p)] { + case 69: + goto st459 + case 96: + goto tr303 + case 101: + goto st459 + } + 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 + 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: + if lex.data[(lex.p)] == 95 { + goto tr654 + } + 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 + st461: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof461 + } + st_case_461: + switch lex.data[(lex.p)] { + 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 tr303 + } + case 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 + 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 + } + 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 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 tr211 + st465: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof465 + } + st_case_465: + if lex.data[(lex.p)] == 95 { + goto st466 + } + 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 + st466: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof466 + } + st_case_466: + if lex.data[(lex.p)] == 95 { + goto tr660 + } + 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 + st467: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof467 + } + st_case_467: + switch lex.data[(lex.p)] { + case 61: + goto tr661 + case 124: + goto tr662 + } + goto tr239 + tr141: + // line scanner/scanner.rl:391 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st468 + tr663: + // line scanner/scanner.rl:394 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + { + goto st121 + } + } + goto st468 + tr668: + // line scanner/scanner.rl:391 + 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:391 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st468 + tr674: + // line scanner/scanner.rl:394 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + { + goto st121 + } + } + goto st468 + tr675: + // line scanner/scanner.rl:392 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_OBJECT_OPERATOR + { + (lex.p)++ + lex.cs = 468 + goto _out + } + } + goto st468 + tr676: + lex.cs = 468 + // line scanner/scanner.rl:393 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_STRING + lex.cs = 121 + { + (lex.p)++ + goto _out + } + } + goto _again + st468: + // line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof468 + } + st_case_468: + // line NONE:1 + lex.ts = (lex.p) + + // line scanner/scanner.go:15870 + 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)] < 14: + switch { + case lex.data[(lex.p)] > 8: + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr664 + } + default: + goto tr663 + } + case lex.data[(lex.p)] > 64: + switch { + 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: + goto tr663 + } + 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: + // line scanner/scanner.go:15923 + switch lex.data[(lex.p)] { + case 10: + goto tr142 + case 13: + goto st99 + case 32: + goto tr664 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr664 + } + goto tr668 + tr142: + // line NONE:1 + lex.te = (lex.p) + 1 + + goto st470 + tr672: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st470 + st470: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof470 + } + st_case_470: + // line scanner/scanner.go:15953 + switch lex.data[(lex.p)] { + case 10: + goto tr672 + case 13: + goto tr673 + case 32: + goto tr671 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr671 + } + goto tr670 + tr673: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st99 + st99: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof99 + } + st_case_99: + // line scanner/scanner.go:15975 + if lex.data[(lex.p)] == 10 { + goto tr142 + } + goto tr141 + st471: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof471 + } + st_case_471: + if lex.data[(lex.p)] == 10 { + goto tr142 + } + goto tr674 + st472: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof472 + } + st_case_472: + if lex.data[(lex.p)] == 62 { + goto tr675 + } + goto tr674 + st473: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof473 + } + st_case_473: + if lex.data[(lex.p)] == 96 { + goto tr676 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr676 + } + case lex.data[(lex.p)] > 64: + switch { + 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: + goto tr676 + } + goto st473 + tr679: + lex.cs = 474 + // line NONE:1 + switch lex.act { + case 0: + { + { + goto st0 + } + } + case 146: + { + (lex.p) = (lex.te) - 1 + + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + lex.cs = 495 + { + (lex.p)++ + goto _out + } + } + } + + goto _again + tr680: + lex.cs = 474 + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:398 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + lex.cs = 495 + { + (lex.p)++ + goto _out + } + } + 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 + } + st_case_474: + // line NONE:1 + lex.ts = (lex.p) + + // line scanner/scanner.go:16069 + _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 + } + } + if _widec == 1034 { + goto st476 + } + 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:398 + 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:398 + lex.act = 146 + goto st475 + st475: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof475 + } + st_case_475: + // line scanner/scanner.go:16140 + _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 + } + } + if _widec == 1034 { + goto st476 + } + if 1024 <= _widec && _widec <= 1279 { + goto tr677 + } + goto tr679 + tr682: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st476 + st476: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof476 + } + st_case_476: + // line scanner/scanner.go:16195 + _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 + } + } + if _widec == 1034 { + goto tr682 + } + if 1024 <= _widec && _widec <= 1279 { + goto tr681 + } + goto tr680 + tr143: + // line scanner/scanner.rl:407 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.setTokenPosition(token) + tok = T_CURLY_OPEN + lex.call(477, 121) + goto _out + } + goto st477 + tr689: + // line scanner/scanner.rl:409 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + { + lex.growCallStack() + { + lex.stack[lex.top] = 477 + lex.top++ + goto st497 + } + } + } + goto st477 + tr690: + // line scanner/scanner.rl:408 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.call(477, 512) + goto _out + } + goto st477 + tr691: + lex.cs = 477 + // line NONE:1 + switch lex.act { + case 147: + { + (lex.p) = (lex.te) - 1 + lex.ungetCnt(1) + lex.setTokenPosition(token) + tok = T_CURLY_OPEN + lex.call(477, 121) + goto _out + } + case 148: + { + (lex.p) = (lex.te) - 1 + lex.setTokenPosition(token) + tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.call(477, 512) + goto _out + } + case 150: + { + (lex.p) = (lex.te) - 1 + + 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 + tr692: + lex.cs = 477 + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:410 + 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:410 + 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:16324 + _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:410 + 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:410 + lex.act = 150 + goto st479 + tr695: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:408 + lex.act = 148 + goto st479 + tr697: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:407 + lex.act = 147 + goto st479 + st479: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof479 + } + st_case_479: + // line scanner/scanner.go:16432 + _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:16487 + _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:422 + 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:425 + 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:424 + 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:423 + 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 + + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + { + (lex.p)++ + goto _out + } + } + } + + goto _again + tr709: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:426 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + { + (lex.p)++ + lex.cs = 483 + goto _out + } + } + goto st483 + tr713: + // line scanner/scanner.rl:426 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + { + (lex.p)++ + lex.cs = 483 + goto _out + } + } + goto st483 + st483: + // line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof483 + } + st_case_483: + // line NONE:1 + lex.ts = (lex.p) + + // line scanner/scanner.go:16721 + _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:426 + lex.act = 155 + goto st485 + tr704: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:425 + 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:426 + lex.act = 155 + goto st485 + tr712: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:423 + lex.act = 152 + goto st485 + tr714: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:422 + lex.act = 151 + goto st485 + st485: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof485 + } + st_case_485: + // line scanner/scanner.go:16840 + _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:16895 + _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:434 + 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:437 + 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:436 + 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:435 + 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:438 + 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:438 + 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:17129 + _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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + switch _widec { + case 2338: + goto tr715 + case 2340: + goto st490 + case 2427: + goto st102 + case 2570: + goto st492 + case 2594: + goto tr720 + case 2596: + goto st493 + case 2683: + goto st494 + } + if 2560 <= _widec && _widec <= 2815 { + goto tr718 + } + goto st0 + st490: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof490 + } + st_case_490: + if lex.data[(lex.p)] == 123 { + goto tr724 + } + goto tr723 + st102: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof102 + } + st_case_102: + if lex.data[(lex.p)] == 36 { + goto tr146 + } + goto st0 + tr718: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:438 + lex.act = 160 + goto st491 + tr720: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:437 + lex.act = 159 + goto st491 + tr727: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:438 + lex.act = 160 + goto st491 + tr729: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:435 + lex.act = 157 + goto st491 + tr731: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:434 + lex.act = 156 + goto st491 + st491: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof491 + } + st_case_491: + // line scanner/scanner.go:17248 + _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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + if _widec == 2570 { + goto st492 + } + if 2560 <= _widec && _widec <= 2815 { + goto tr718 + } + goto tr725 + tr728: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st492 + st492: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof492 + } + st_case_492: + // line scanner/scanner.go:17303 + _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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + if _widec == 2570 { + goto tr728 + } + if 2560 <= _widec && _widec <= 2815 { + goto tr727 + } + goto tr726 + st493: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof493 + } + st_case_493: + _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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + switch _widec { + case 2427: + goto tr724 + case 2570: + goto st492 + case 2683: + goto tr729 + } + if 2560 <= _widec && _widec <= 2815 { + goto tr718 + } + goto tr723 + st494: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof494 + } + st_case_494: + _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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (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 = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + default: + _widec = 2304 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotStringEnd('"') && lex.isNotStringVar() { + _widec += 256 + } + } + switch _widec { + case 2340: + goto tr146 + case 2570: + goto st492 + case 2596: + goto tr731 + } + if 2560 <= _widec && _widec <= 2815 { + goto tr718 + } + goto tr730 + tr733: + lex.cs = 495 + // line scanner/scanner.rl:446 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_END_HEREDOC + lex.cs = 121 + { + (lex.p)++ + goto _out + } + } + goto _again + st495: + // line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof495 + } + st_case_495: + // line NONE:1 + lex.ts = (lex.p) + + // line scanner/scanner.go:17482 + if lex.data[(lex.p)] == 96 { + goto st0 + } + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto st0 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto st0 + } + default: + goto st0 + } + goto st496 + st496: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof496 + } + st_case_496: + if lex.data[(lex.p)] == 96 { + goto tr733 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + 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 tr733 + } + case lex.data[(lex.p)] >= 91: + goto tr733 + } + default: + goto tr733 + } + goto st496 + tr147: + // line scanner/scanner.rl:465 + (lex.p) = (lex.te) - 1 + { + lex.ungetCnt(1) + { + lex.top-- + lex.cs = lex.stack[lex.top] + goto _again + } + } + goto st497 + tr148: + // line scanner/scanner.rl:462 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.setTokenPosition(token) + tok = T_OBJECT_OPERATOR + { + (lex.p)++ + lex.cs = 497 + goto _out + } + } + goto st497 + tr734: + // line scanner/scanner.rl:465 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + { + lex.top-- + lex.cs = lex.stack[lex.top] + goto _again + } + } + goto st497 + tr738: + // line scanner/scanner.rl:464 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(token) + tok = TokenID(int('[')) + lex.call(497, 502) + goto _out + } + goto st497 + tr739: + // line scanner/scanner.rl:465 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + { + lex.top-- + lex.cs = lex.stack[lex.top] + goto _again + } + } + goto st497 + tr741: + // line scanner/scanner.rl:461 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_VARIABLE + { + (lex.p)++ + lex.cs = 497 + goto _out + } + } + goto st497 + tr743: + // line scanner/scanner.rl:463 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_STRING + { + (lex.p)++ + lex.cs = 497 + goto _out + } + } + 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:17574 + 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:17655 + 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 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr743 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr743 + } + case lex.data[(lex.p)] >= 91: + goto tr743 + } + default: + goto tr743 + } + goto st501 + tr149: + // line scanner/scanner.rl:469 + (lex.p) = (lex.te) - 1 + { + lex.setTokenPosition(token) + tok = T_NUM_STRING + { + (lex.p)++ + lex.cs = 502 + goto _out + } + } + goto st502 + tr744: + // line scanner/scanner.rl:475 + 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 st502 + tr745: + // line scanner/scanner.rl:472 + 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:473 + 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:474 + 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:472 + lex.te = (lex.p) + (lex.p)-- + { + lex.setTokenPosition(token) + tok = T_ENCAPSED_AND_WHITESPACE + lex.ret(2) + goto _out + } + goto st502 + tr754: + // line scanner/scanner.rl:475 + 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:473 + 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:470 + 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:469 + 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:471 + 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_eof502 + } + st_case_502: + // line NONE:1 + lex.ts = (lex.p) + + // line scanner/scanner.go:17787 + 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)] < 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)] > 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 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: + if lex.data[(lex.p)] == 10 { + goto st503 + } + goto tr754 + st505: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof505 + } + st_case_505: + if lex.data[(lex.p)] == 96 { + goto tr755 + } + 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 st506 + st506: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof506 + } + st_case_506: + if lex.data[(lex.p)] == 96 { + goto tr757 + } + 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 st506 + tr750: + // line NONE:1 + lex.te = (lex.p) + 1 + + goto st507 + st507: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof507 + } + st_case_507: + // line scanner/scanner.go:17924 + switch lex.data[(lex.p)] { + case 95: + goto st104 + case 98: + goto st105 + case 120: + goto st106 + } + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr150 + } + 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: + // line scanner/scanner.go:17947 + if lex.data[(lex.p)] == 95 { + goto st104 + } + if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { + goto tr150 + } + 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 NONE:1 + lex.te = (lex.p) + 1 + + goto st509 + st509: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof509 + } + st_case_509: + // line scanner/scanner.go:17983 + 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 + } + goto tr149 + tr152: + // line NONE:1 + lex.te = (lex.p) + 1 + + goto st510 + st510: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof510 + } + st_case_510: + // line scanner/scanner.go:18019 + 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 + } + goto tr758 + st511: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof511 + } + st_case_511: + if lex.data[(lex.p)] == 96 { + goto tr762 + } + 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 st511 + tr153: + lex.cs = 512 + // line scanner/scanner.rl:483 + (lex.p) = (lex.te) - 1 + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + tr155: + lex.cs = 512 + // line scanner/scanner.rl:482 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.setTokenPosition(token) + tok = T_STRING_VARNAME + lex.cs = 121 + { + (lex.p)++ + goto _out + } + } + goto _again + tr763: + lex.cs = 512 + // line scanner/scanner.rl:483 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + tr765: + lex.cs = 512 + // line scanner/scanner.rl:483 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + st512: + // line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof512 + } + st_case_512: + // line NONE:1 + lex.ts = (lex.p) + + // line scanner/scanner.go:18098 + 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:18125 + switch lex.data[(lex.p)] { + case 91: + goto tr155 + case 96: + goto tr765 + case 125: + goto tr155 + } + 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:487 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st514 + tr766: + lex.cs = 514 + // line scanner/scanner.rl:489 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + tr769: + lex.cs = 514 + // line scanner/scanner.rl:488 + 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:487 + 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:487 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st514 + tr776: + lex.cs = 514 + // line scanner/scanner.rl:489 + 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 NONE:1 + lex.ts = (lex.p) + + // line scanner/scanner.go:18232 + switch lex.data[(lex.p)] { + case 10: + goto tr157 + case 13: + goto st517 + case 32: + goto tr767 + case 40: + goto tr769 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr767 + } + goto tr766 + tr767: + // line NONE:1 + lex.te = (lex.p) + 1 + + goto st515 + tr773: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st515 + st515: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof515 + } + st_case_515: + // line scanner/scanner.go:18264 + switch lex.data[(lex.p)] { + case 10: + goto tr157 + case 13: + goto st108 + case 32: + goto tr767 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr767 + } + 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 st516 + st516: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof516 + } + st_case_516: + // line scanner/scanner.go:18294 + 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:18316 + if lex.data[(lex.p)] == 10 { + 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:493 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st518 + tr777: + lex.cs = 518 + // line scanner/scanner.rl:495 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + tr780: + lex.cs = 518 + // line scanner/scanner.rl:494 + 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:493 + 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:493 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st518 + tr787: + lex.cs = 518 + // line scanner/scanner.rl:495 + 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:18379 + 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:18411 + 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:18441 + 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:18463 + 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:499 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st522 + tr788: + lex.cs = 522 + // line scanner/scanner.rl:501 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.cs = 121 + } + goto _again + tr791: + lex.cs = 522 + // line scanner/scanner.rl:500 + 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:499 + 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:499 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + } + goto st522 + tr798: + lex.cs = 522 + // line scanner/scanner.rl:501 + 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:18526 + 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:18558 + 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:18588 + 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:18610 + 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: + { + { + goto st0 + } + } + case 186: + { + (lex.p) = (lex.te) - 1 + lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) + } + } + + goto st526 + tr802: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:505 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) + } + goto st526 + st526: + // line NONE:1 + lex.ts = 0 + + // line NONE:1 + lex.act = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof526 + } + st_case_526: + // line NONE:1 + lex.ts = (lex.p) + + // line scanner/scanner.go:18657 + if lex.data[(lex.p)] == 10 { + goto st528 + } + goto tr799 + tr799: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:505 + lex.act = 186 + goto st527 + tr803: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + // line scanner/scanner.rl:505 + lex.act = 186 + goto st527 + st527: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof527 + } + st_case_527: + // line scanner/scanner.go:18683 + if lex.data[(lex.p)] == 10 { + goto st528 + } + goto tr799 + tr804: + // line scanner/scanner.rl:66 + lex.NewLines.Append(lex.p) + goto st528 + st528: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof528 + } + st_case_528: + // line scanner/scanner.go:18697 + if lex.data[(lex.p)] == 10 { + goto tr804 + } + goto tr803 + st_out: + _test_eof111: + lex.cs = 111 + goto _test_eof + _test_eof112: + lex.cs = 112 + goto _test_eof + _test_eof1: + lex.cs = 1 + goto _test_eof + _test_eof113: + lex.cs = 113 + goto _test_eof + _test_eof114: + lex.cs = 114 + goto _test_eof + _test_eof115: + lex.cs = 115 + goto _test_eof + _test_eof116: + lex.cs = 116 + goto _test_eof + _test_eof117: + lex.cs = 117 + goto _test_eof + _test_eof118: + lex.cs = 118 + goto _test_eof + _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_eof5: + lex.cs = 5 + goto _test_eof + _test_eof121: + lex.cs = 121 + goto _test_eof + _test_eof122: + lex.cs = 122 + goto _test_eof + _test_eof123: + lex.cs = 123 + goto _test_eof + _test_eof6: + lex.cs = 6 + goto _test_eof + _test_eof124: + lex.cs = 124 + goto _test_eof + _test_eof125: + lex.cs = 125 + goto _test_eof + _test_eof126: + lex.cs = 126 + goto _test_eof + _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_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 + _test_eof14: + lex.cs = 14 + goto _test_eof + _test_eof15: + lex.cs = 15 + goto _test_eof + _test_eof16: + lex.cs = 16 + goto _test_eof + _test_eof17: + lex.cs = 17 + goto _test_eof + _test_eof18: + lex.cs = 18 + goto _test_eof + _test_eof19: + lex.cs = 19 + goto _test_eof + _test_eof20: + lex.cs = 20 + goto _test_eof + _test_eof21: + lex.cs = 21 + goto _test_eof + _test_eof22: + lex.cs = 22 + goto _test_eof + _test_eof23: + lex.cs = 23 + goto _test_eof + _test_eof24: + lex.cs = 24 + goto _test_eof + _test_eof25: + lex.cs = 25 + goto _test_eof + _test_eof26: + lex.cs = 26 + goto _test_eof + _test_eof27: + lex.cs = 27 + goto _test_eof + _test_eof28: + lex.cs = 28 + goto _test_eof + _test_eof29: + lex.cs = 29 + goto _test_eof + _test_eof30: + lex.cs = 30 + goto _test_eof + _test_eof31: + lex.cs = 31 + goto _test_eof + _test_eof32: + lex.cs = 32 + goto _test_eof + _test_eof33: + lex.cs = 33 + goto _test_eof + _test_eof34: + lex.cs = 34 + goto _test_eof + _test_eof35: + lex.cs = 35 + goto _test_eof + _test_eof36: + lex.cs = 36 + goto _test_eof + _test_eof37: + lex.cs = 37 + goto _test_eof + _test_eof38: + lex.cs = 38 + goto _test_eof + _test_eof39: + lex.cs = 39 + goto _test_eof + _test_eof40: + lex.cs = 40 + goto _test_eof + _test_eof41: + lex.cs = 41 + goto _test_eof + _test_eof42: + lex.cs = 42 + goto _test_eof + _test_eof43: + lex.cs = 43 + goto _test_eof + _test_eof44: + lex.cs = 44 + goto _test_eof + _test_eof45: + lex.cs = 45 + goto _test_eof + _test_eof46: + lex.cs = 46 + goto _test_eof + _test_eof47: + lex.cs = 47 + goto _test_eof + _test_eof48: + lex.cs = 48 + goto _test_eof + _test_eof49: + lex.cs = 49 + goto _test_eof + _test_eof50: + lex.cs = 50 + goto _test_eof + _test_eof51: + lex.cs = 51 + goto _test_eof + _test_eof52: + lex.cs = 52 + goto _test_eof + _test_eof53: + lex.cs = 53 + goto _test_eof + _test_eof54: + lex.cs = 54 + goto _test_eof + _test_eof55: + lex.cs = 55 + goto _test_eof + _test_eof56: + lex.cs = 56 + goto _test_eof + _test_eof57: + lex.cs = 57 + goto _test_eof + _test_eof58: + lex.cs = 58 + goto _test_eof + _test_eof59: + lex.cs = 59 + goto _test_eof + _test_eof60: + lex.cs = 60 + goto _test_eof + _test_eof61: + lex.cs = 61 + goto _test_eof + _test_eof62: + lex.cs = 62 + goto _test_eof + _test_eof63: + lex.cs = 63 + goto _test_eof + _test_eof64: + lex.cs = 64 + goto _test_eof + _test_eof65: + lex.cs = 65 + goto _test_eof + _test_eof66: + lex.cs = 66 + goto _test_eof + _test_eof136: + lex.cs = 136 + goto _test_eof + _test_eof137: + lex.cs = 137 + goto _test_eof + _test_eof138: + lex.cs = 138 + goto _test_eof + _test_eof139: + lex.cs = 139 + 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_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_eof145: + lex.cs = 145 + goto _test_eof + _test_eof146: + lex.cs = 146 + goto _test_eof + _test_eof74: + lex.cs = 74 + goto _test_eof + _test_eof75: + lex.cs = 75 + goto _test_eof + _test_eof147: + lex.cs = 147 + goto _test_eof + _test_eof76: + lex.cs = 76 + goto _test_eof + _test_eof148: + lex.cs = 148 + goto _test_eof + _test_eof149: + lex.cs = 149 + goto _test_eof + _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 + _test_eof157: + lex.cs = 157 + goto _test_eof + _test_eof158: + lex.cs = 158 + goto _test_eof + _test_eof159: + lex.cs = 159 + goto _test_eof + _test_eof160: + lex.cs = 160 + goto _test_eof + _test_eof161: + lex.cs = 161 + goto _test_eof + _test_eof162: + lex.cs = 162 + goto _test_eof + _test_eof163: + lex.cs = 163 + goto _test_eof + _test_eof90: + lex.cs = 90 + goto _test_eof + _test_eof164: + lex.cs = 164 + goto _test_eof + _test_eof165: + lex.cs = 165 + goto _test_eof + _test_eof166: + lex.cs = 166 + goto _test_eof + _test_eof167: + lex.cs = 167 + goto _test_eof + _test_eof168: + lex.cs = 168 + goto _test_eof + _test_eof169: + lex.cs = 169 + goto _test_eof + _test_eof170: + lex.cs = 170 + goto _test_eof + _test_eof171: + lex.cs = 171 + goto _test_eof + _test_eof172: + lex.cs = 172 + goto _test_eof + _test_eof173: + lex.cs = 173 + goto _test_eof + _test_eof174: + lex.cs = 174 + goto _test_eof + _test_eof175: + lex.cs = 175 + goto _test_eof + _test_eof176: + lex.cs = 176 + goto _test_eof + _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 + _test_eof179: + lex.cs = 179 + goto _test_eof + _test_eof180: + lex.cs = 180 + goto _test_eof + _test_eof181: + lex.cs = 181 + goto _test_eof + _test_eof182: + lex.cs = 182 + goto _test_eof + _test_eof183: + lex.cs = 183 + goto _test_eof + _test_eof184: + lex.cs = 184 + goto _test_eof + _test_eof185: + lex.cs = 185 + goto _test_eof + _test_eof186: + lex.cs = 186 + goto _test_eof + _test_eof187: + lex.cs = 187 + goto _test_eof + _test_eof188: + lex.cs = 188 + goto _test_eof + _test_eof189: + lex.cs = 189 + goto _test_eof + _test_eof190: + lex.cs = 190 + goto _test_eof + _test_eof191: + lex.cs = 191 + goto _test_eof + _test_eof192: + lex.cs = 192 + goto _test_eof + _test_eof193: + lex.cs = 193 + goto _test_eof + _test_eof194: + lex.cs = 194 + goto _test_eof + _test_eof195: + lex.cs = 195 + goto _test_eof + _test_eof196: + lex.cs = 196 + goto _test_eof + _test_eof197: + lex.cs = 197 + goto _test_eof + _test_eof198: + lex.cs = 198 + goto _test_eof + _test_eof199: + lex.cs = 199 + goto _test_eof + _test_eof200: + lex.cs = 200 + goto _test_eof + _test_eof201: + lex.cs = 201 + goto _test_eof + _test_eof202: + lex.cs = 202 + goto _test_eof + _test_eof203: + lex.cs = 203 + goto _test_eof + _test_eof204: + lex.cs = 204 + goto _test_eof + _test_eof205: + lex.cs = 205 + goto _test_eof + _test_eof206: + lex.cs = 206 + goto _test_eof + _test_eof207: + lex.cs = 207 + goto _test_eof + _test_eof208: + lex.cs = 208 + goto _test_eof + _test_eof209: + lex.cs = 209 + goto _test_eof + _test_eof210: + lex.cs = 210 + goto _test_eof + _test_eof211: + lex.cs = 211 + goto _test_eof + _test_eof212: + lex.cs = 212 + goto _test_eof + _test_eof213: + lex.cs = 213 + goto _test_eof + _test_eof214: + lex.cs = 214 + goto _test_eof + _test_eof215: + lex.cs = 215 + goto _test_eof + _test_eof216: + lex.cs = 216 + goto _test_eof + _test_eof217: + lex.cs = 217 + goto _test_eof + _test_eof218: + lex.cs = 218 + goto _test_eof + _test_eof219: + lex.cs = 219 + goto _test_eof + _test_eof220: + lex.cs = 220 + goto _test_eof + _test_eof221: + lex.cs = 221 + goto _test_eof + _test_eof222: + lex.cs = 222 + goto _test_eof + _test_eof223: + lex.cs = 223 + goto _test_eof + _test_eof224: + lex.cs = 224 + goto _test_eof + _test_eof225: + lex.cs = 225 + goto _test_eof + _test_eof226: + lex.cs = 226 + goto _test_eof + _test_eof227: + lex.cs = 227 + goto _test_eof + _test_eof228: + lex.cs = 228 + goto _test_eof + _test_eof229: + lex.cs = 229 + goto _test_eof + _test_eof230: + lex.cs = 230 + goto _test_eof + _test_eof231: + lex.cs = 231 + goto _test_eof + _test_eof232: + lex.cs = 232 + goto _test_eof + _test_eof233: + lex.cs = 233 + goto _test_eof + _test_eof234: + lex.cs = 234 + goto _test_eof + _test_eof235: + lex.cs = 235 + goto _test_eof + _test_eof236: + lex.cs = 236 + goto _test_eof + _test_eof237: + lex.cs = 237 + goto _test_eof + _test_eof238: + lex.cs = 238 + goto _test_eof + _test_eof239: + lex.cs = 239 + goto _test_eof + _test_eof240: + lex.cs = 240 + goto _test_eof + _test_eof241: + lex.cs = 241 + goto _test_eof + _test_eof242: + lex.cs = 242 + goto _test_eof + _test_eof243: + lex.cs = 243 + goto _test_eof + _test_eof244: + lex.cs = 244 + goto _test_eof + _test_eof245: + lex.cs = 245 + goto _test_eof + _test_eof246: + lex.cs = 246 + goto _test_eof + _test_eof247: + lex.cs = 247 + goto _test_eof + _test_eof248: + lex.cs = 248 + goto _test_eof + _test_eof249: + lex.cs = 249 + goto _test_eof + _test_eof250: + lex.cs = 250 + goto _test_eof + _test_eof251: + lex.cs = 251 + goto _test_eof + _test_eof252: + lex.cs = 252 + goto _test_eof + _test_eof253: + lex.cs = 253 + goto _test_eof + _test_eof254: + lex.cs = 254 + goto _test_eof + _test_eof255: + lex.cs = 255 + goto _test_eof + _test_eof256: + lex.cs = 256 + goto _test_eof + _test_eof257: + lex.cs = 257 + goto _test_eof + _test_eof258: + lex.cs = 258 + goto _test_eof + _test_eof259: + lex.cs = 259 + goto _test_eof + _test_eof260: + lex.cs = 260 + goto _test_eof + _test_eof261: + lex.cs = 261 + goto _test_eof + _test_eof262: + lex.cs = 262 + goto _test_eof + _test_eof263: + lex.cs = 263 + goto _test_eof + _test_eof264: + lex.cs = 264 + goto _test_eof + _test_eof265: + lex.cs = 265 + goto _test_eof + _test_eof266: + lex.cs = 266 + goto _test_eof + _test_eof267: + lex.cs = 267 + goto _test_eof + _test_eof268: + lex.cs = 268 + goto _test_eof + _test_eof269: + lex.cs = 269 + goto _test_eof + _test_eof270: + lex.cs = 270 + goto _test_eof + _test_eof271: + lex.cs = 271 + goto _test_eof + _test_eof272: + lex.cs = 272 + goto _test_eof + _test_eof273: + lex.cs = 273 + goto _test_eof + _test_eof274: + lex.cs = 274 + goto _test_eof + _test_eof275: + lex.cs = 275 + goto _test_eof + _test_eof276: + lex.cs = 276 + goto _test_eof + _test_eof277: + lex.cs = 277 + goto _test_eof + _test_eof278: + lex.cs = 278 + goto _test_eof + _test_eof279: + lex.cs = 279 + goto _test_eof + _test_eof280: + lex.cs = 280 + goto _test_eof + _test_eof281: + lex.cs = 281 + goto _test_eof + _test_eof282: + lex.cs = 282 + goto _test_eof + _test_eof283: + lex.cs = 283 + goto _test_eof + _test_eof284: + lex.cs = 284 + goto _test_eof + _test_eof285: + lex.cs = 285 + goto _test_eof + _test_eof286: + lex.cs = 286 + goto _test_eof + _test_eof287: + lex.cs = 287 + goto _test_eof + _test_eof288: + lex.cs = 288 + goto _test_eof + _test_eof289: + lex.cs = 289 + goto _test_eof + _test_eof290: + lex.cs = 290 + goto _test_eof + _test_eof291: + lex.cs = 291 + goto _test_eof + _test_eof292: + lex.cs = 292 + goto _test_eof + _test_eof293: + lex.cs = 293 + goto _test_eof + _test_eof294: + lex.cs = 294 + goto _test_eof + _test_eof295: + lex.cs = 295 + goto _test_eof + _test_eof296: + lex.cs = 296 + goto _test_eof + _test_eof297: + lex.cs = 297 + goto _test_eof + _test_eof298: + lex.cs = 298 + goto _test_eof + _test_eof299: + lex.cs = 299 + goto _test_eof + _test_eof300: + lex.cs = 300 + goto _test_eof + _test_eof301: + lex.cs = 301 + goto _test_eof + _test_eof302: + lex.cs = 302 + goto _test_eof + _test_eof303: + lex.cs = 303 + goto _test_eof + _test_eof304: + lex.cs = 304 + goto _test_eof + _test_eof305: + lex.cs = 305 + goto _test_eof + _test_eof306: + lex.cs = 306 + goto _test_eof + _test_eof307: + lex.cs = 307 + goto _test_eof + _test_eof308: + lex.cs = 308 + goto _test_eof + _test_eof309: + lex.cs = 309 + goto _test_eof + _test_eof310: + lex.cs = 310 + goto _test_eof + _test_eof311: + lex.cs = 311 + goto _test_eof + _test_eof312: + lex.cs = 312 + goto _test_eof + _test_eof313: + lex.cs = 313 + goto _test_eof + _test_eof314: + lex.cs = 314 + goto _test_eof + _test_eof315: + lex.cs = 315 + goto _test_eof + _test_eof316: + lex.cs = 316 + goto _test_eof + _test_eof317: + lex.cs = 317 + goto _test_eof + _test_eof318: + lex.cs = 318 + goto _test_eof + _test_eof319: + lex.cs = 319 + goto _test_eof + _test_eof320: + lex.cs = 320 + goto _test_eof + _test_eof321: + lex.cs = 321 + goto _test_eof + _test_eof322: + lex.cs = 322 + goto _test_eof + _test_eof323: + lex.cs = 323 + goto _test_eof + _test_eof324: + lex.cs = 324 + goto _test_eof + _test_eof325: + lex.cs = 325 + goto _test_eof + _test_eof326: + lex.cs = 326 + goto _test_eof + _test_eof327: + lex.cs = 327 + goto _test_eof + _test_eof328: + lex.cs = 328 + goto _test_eof + _test_eof329: + lex.cs = 329 + goto _test_eof + _test_eof330: + lex.cs = 330 + goto _test_eof + _test_eof331: + lex.cs = 331 + goto _test_eof + _test_eof332: + lex.cs = 332 + goto _test_eof + _test_eof333: + lex.cs = 333 + goto _test_eof + _test_eof334: + lex.cs = 334 + goto _test_eof + _test_eof335: + lex.cs = 335 + goto _test_eof + _test_eof336: + lex.cs = 336 + goto _test_eof + _test_eof337: + lex.cs = 337 + goto _test_eof + _test_eof338: + lex.cs = 338 + goto _test_eof + _test_eof339: + lex.cs = 339 + goto _test_eof + _test_eof340: + lex.cs = 340 + goto _test_eof + _test_eof341: + lex.cs = 341 + goto _test_eof + _test_eof342: + lex.cs = 342 + goto _test_eof + _test_eof343: + lex.cs = 343 + goto _test_eof + _test_eof344: + lex.cs = 344 + goto _test_eof + _test_eof345: + lex.cs = 345 + goto _test_eof + _test_eof346: + lex.cs = 346 + goto _test_eof + _test_eof347: + lex.cs = 347 + goto _test_eof + _test_eof348: + lex.cs = 348 + goto _test_eof + _test_eof349: + lex.cs = 349 + goto _test_eof + _test_eof350: + lex.cs = 350 + goto _test_eof + _test_eof351: + lex.cs = 351 + goto _test_eof + _test_eof352: + lex.cs = 352 + goto _test_eof + _test_eof353: + lex.cs = 353 + goto _test_eof + _test_eof354: + lex.cs = 354 + goto _test_eof + _test_eof355: + lex.cs = 355 + goto _test_eof + _test_eof356: + lex.cs = 356 + goto _test_eof + _test_eof357: + lex.cs = 357 + goto _test_eof + _test_eof358: + lex.cs = 358 + goto _test_eof + _test_eof359: + lex.cs = 359 + goto _test_eof + _test_eof360: + lex.cs = 360 + goto _test_eof + _test_eof361: + lex.cs = 361 + goto _test_eof + _test_eof362: + lex.cs = 362 + goto _test_eof + _test_eof363: + lex.cs = 363 + goto _test_eof + _test_eof364: + lex.cs = 364 + goto _test_eof + _test_eof365: + lex.cs = 365 + goto _test_eof + _test_eof366: + lex.cs = 366 + goto _test_eof + _test_eof367: + lex.cs = 367 + goto _test_eof + _test_eof368: + lex.cs = 368 + goto _test_eof + _test_eof369: + lex.cs = 369 + goto _test_eof + _test_eof370: + lex.cs = 370 + goto _test_eof + _test_eof371: + lex.cs = 371 + goto _test_eof + _test_eof372: + lex.cs = 372 + goto _test_eof + _test_eof373: + lex.cs = 373 + goto _test_eof + _test_eof374: + lex.cs = 374 + goto _test_eof + _test_eof375: + lex.cs = 375 + goto _test_eof + _test_eof376: + lex.cs = 376 + goto _test_eof + _test_eof377: + lex.cs = 377 + goto _test_eof + _test_eof378: + lex.cs = 378 + goto _test_eof + _test_eof379: + lex.cs = 379 + goto _test_eof + _test_eof380: + lex.cs = 380 + goto _test_eof + _test_eof381: + lex.cs = 381 + goto _test_eof + _test_eof382: + lex.cs = 382 + goto _test_eof + _test_eof383: + lex.cs = 383 + goto _test_eof + _test_eof384: + lex.cs = 384 + goto _test_eof + _test_eof385: + lex.cs = 385 + goto _test_eof + _test_eof386: + lex.cs = 386 + goto _test_eof + _test_eof387: + lex.cs = 387 + goto _test_eof + _test_eof388: + lex.cs = 388 + goto _test_eof + _test_eof389: + lex.cs = 389 + goto _test_eof + _test_eof390: + lex.cs = 390 + goto _test_eof + _test_eof391: + lex.cs = 391 + goto _test_eof + _test_eof392: + lex.cs = 392 + goto _test_eof + _test_eof393: + lex.cs = 393 + goto _test_eof + _test_eof394: + lex.cs = 394 + goto _test_eof + _test_eof395: + lex.cs = 395 + goto _test_eof + _test_eof396: + lex.cs = 396 + goto _test_eof + _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 + _test_eof399: + lex.cs = 399 + goto _test_eof + _test_eof400: + lex.cs = 400 + goto _test_eof + _test_eof401: + lex.cs = 401 + goto _test_eof + _test_eof402: + lex.cs = 402 + goto _test_eof + _test_eof403: + lex.cs = 403 + goto _test_eof + _test_eof404: + lex.cs = 404 + goto _test_eof + _test_eof405: + lex.cs = 405 + goto _test_eof + _test_eof406: + lex.cs = 406 + goto _test_eof + _test_eof407: + lex.cs = 407 + goto _test_eof + _test_eof408: + lex.cs = 408 + goto _test_eof + _test_eof409: + lex.cs = 409 + goto _test_eof + _test_eof410: + lex.cs = 410 + goto _test_eof + _test_eof411: + lex.cs = 411 + goto _test_eof + _test_eof412: + lex.cs = 412 + goto _test_eof + _test_eof413: + lex.cs = 413 + goto _test_eof + _test_eof414: + lex.cs = 414 + goto _test_eof + _test_eof415: + lex.cs = 415 + goto _test_eof + _test_eof416: + lex.cs = 416 + goto _test_eof + _test_eof417: + lex.cs = 417 + goto _test_eof + _test_eof418: + lex.cs = 418 + goto _test_eof + _test_eof419: + lex.cs = 419 + goto _test_eof + _test_eof420: + lex.cs = 420 + goto _test_eof + _test_eof421: + lex.cs = 421 + goto _test_eof + _test_eof422: + lex.cs = 422 + goto _test_eof + _test_eof423: + lex.cs = 423 + goto _test_eof + _test_eof424: + lex.cs = 424 + goto _test_eof + _test_eof425: + lex.cs = 425 + goto _test_eof + _test_eof426: + lex.cs = 426 + goto _test_eof + _test_eof427: + lex.cs = 427 + goto _test_eof + _test_eof428: + lex.cs = 428 + goto _test_eof + _test_eof429: + lex.cs = 429 + goto _test_eof + _test_eof430: + lex.cs = 430 + goto _test_eof + _test_eof431: + lex.cs = 431 + goto _test_eof + _test_eof432: + lex.cs = 432 + goto _test_eof + _test_eof433: + lex.cs = 433 + goto _test_eof + _test_eof434: + lex.cs = 434 + goto _test_eof + _test_eof435: + lex.cs = 435 + goto _test_eof + _test_eof436: + lex.cs = 436 + goto _test_eof + _test_eof437: + lex.cs = 437 + goto _test_eof + _test_eof438: + lex.cs = 438 + goto _test_eof + _test_eof439: + lex.cs = 439 + goto _test_eof + _test_eof440: + lex.cs = 440 + goto _test_eof + _test_eof441: + lex.cs = 441 + goto _test_eof + _test_eof442: + lex.cs = 442 + goto _test_eof + _test_eof443: + lex.cs = 443 + goto _test_eof + _test_eof444: + lex.cs = 444 + goto _test_eof + _test_eof445: + lex.cs = 445 + goto _test_eof + _test_eof446: + lex.cs = 446 + goto _test_eof + _test_eof447: + lex.cs = 447 + goto _test_eof + _test_eof448: + lex.cs = 448 + goto _test_eof + _test_eof449: + lex.cs = 449 + goto _test_eof + _test_eof450: + lex.cs = 450 + goto _test_eof + _test_eof451: + lex.cs = 451 + goto _test_eof + _test_eof452: + lex.cs = 452 + goto _test_eof + _test_eof453: + lex.cs = 453 + goto _test_eof + _test_eof454: + lex.cs = 454 + goto _test_eof + _test_eof455: + lex.cs = 455 + goto _test_eof + _test_eof456: + lex.cs = 456 + goto _test_eof + _test_eof457: + lex.cs = 457 + goto _test_eof + _test_eof458: + lex.cs = 458 + goto _test_eof + _test_eof459: + lex.cs = 459 + goto _test_eof + _test_eof460: + lex.cs = 460 + goto _test_eof + _test_eof461: + lex.cs = 461 + goto _test_eof + _test_eof462: + lex.cs = 462 + goto _test_eof + _test_eof463: + lex.cs = 463 + goto _test_eof + _test_eof464: + lex.cs = 464 + goto _test_eof + _test_eof465: + lex.cs = 465 + goto _test_eof + _test_eof466: + lex.cs = 466 + goto _test_eof + _test_eof467: + lex.cs = 467 + goto _test_eof + _test_eof468: + lex.cs = 468 + goto _test_eof + _test_eof469: + lex.cs = 469 + 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 + _test_eof472: + lex.cs = 472 + goto _test_eof + _test_eof473: + lex.cs = 473 + goto _test_eof + _test_eof474: + lex.cs = 474 + goto _test_eof + _test_eof475: + lex.cs = 475 + goto _test_eof + _test_eof476: + lex.cs = 476 + goto _test_eof + _test_eof477: + lex.cs = 477 + goto _test_eof + _test_eof478: + lex.cs = 478 + goto _test_eof + _test_eof100: + lex.cs = 100 + goto _test_eof + _test_eof479: + lex.cs = 479 + goto _test_eof + _test_eof480: + lex.cs = 480 + goto _test_eof + _test_eof481: + lex.cs = 481 + goto _test_eof + _test_eof482: + lex.cs = 482 + goto _test_eof + _test_eof483: + lex.cs = 483 + goto _test_eof + _test_eof484: + lex.cs = 484 + goto _test_eof + _test_eof101: + lex.cs = 101 + goto _test_eof + _test_eof485: + lex.cs = 485 + goto _test_eof + _test_eof486: + lex.cs = 486 + goto _test_eof + _test_eof487: + lex.cs = 487 + goto _test_eof + _test_eof488: + lex.cs = 488 + goto _test_eof + _test_eof489: + lex.cs = 489 + goto _test_eof + _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_eof492: + lex.cs = 492 + goto _test_eof + _test_eof493: + lex.cs = 493 + goto _test_eof + _test_eof494: + lex.cs = 494 + goto _test_eof + _test_eof495: + lex.cs = 495 + goto _test_eof + _test_eof496: + lex.cs = 496 + goto _test_eof + _test_eof497: + lex.cs = 497 + goto _test_eof + _test_eof498: + lex.cs = 498 + goto _test_eof + _test_eof499: + lex.cs = 499 + goto _test_eof + _test_eof500: + lex.cs = 500 + goto _test_eof + _test_eof103: + lex.cs = 103 + goto _test_eof + _test_eof501: + lex.cs = 501 + goto _test_eof + _test_eof502: + lex.cs = 502 + goto _test_eof + _test_eof503: + lex.cs = 503 + goto _test_eof + _test_eof504: + lex.cs = 504 + goto _test_eof + _test_eof505: + lex.cs = 505 + goto _test_eof + _test_eof506: + lex.cs = 506 + goto _test_eof + _test_eof507: + lex.cs = 507 + 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_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_eof516: + lex.cs = 516 + goto _test_eof + _test_eof108: + lex.cs = 108 + goto _test_eof + _test_eof517: + lex.cs = 517 + goto _test_eof + _test_eof518: + lex.cs = 518 + goto _test_eof + _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 112: + goto tr164 + case 1: + goto tr0 + case 113: + goto tr165 + case 115: + goto tr169 + case 116: + goto tr171 + case 117: + goto tr169 + case 118: + goto tr169 + case 119: + goto tr176 + case 2: + goto tr3 + case 3: + goto tr3 + case 4: + goto tr3 + case 120: + goto tr179 + case 5: + goto tr3 + case 122: + goto tr232 + case 123: + goto tr234 + case 6: + goto tr9 + case 124: + goto tr238 + case 125: + goto tr239 + case 126: + goto tr241 + case 127: + goto tr243 + case 7: + goto tr11 + case 8: + goto tr11 + case 9: + goto tr11 + case 10: + goto tr11 + case 128: + goto tr244 + case 129: + goto tr246 + case 130: + goto tr239 + case 131: + goto tr250 + case 132: + goto tr239 + case 133: + goto tr239 + case 134: + goto tr238 + case 11: + goto tr18 + case 12: + goto tr18 + case 135: + 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 tr239 + case 137: + goto tr256 + case 138: + goto tr239 + case 139: + goto tr239 + case 140: + goto tr239 + case 67: + goto tr22 + case 141: + 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 tr269 + case 145: + goto tr265 + case 146: + goto tr269 + case 74: + goto tr96 + case 75: + goto tr11 + case 147: + goto tr274 + case 76: + goto tr11 + case 148: + goto tr275 + case 149: + goto tr239 + case 150: + goto tr239 + case 77: + goto tr22 + case 78: + goto tr22 + case 79: + goto tr22 + case 80: + goto tr22 + case 151: + goto tr277 + case 152: + goto tr279 + case 81: + goto tr109 + case 153: + goto tr239 + case 154: + goto tr283 + case 82: + goto tr11 + case 83: + goto tr11 + case 84: + goto tr11 + case 85: + goto tr11 + case 155: + goto tr285 + case 86: + goto tr11 + case 87: + goto tr11 + case 88: + goto tr11 + case 89: + 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 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 tr127 + case 92: + 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 tr303 + case 390: + goto tr303 + case 391: + goto tr303 + case 392: + goto tr303 + case 393: + goto tr303 + case 394: + goto tr303 + case 395: + goto tr303 + case 396: + goto tr303 + case 397: + goto tr582 + case 93: + goto tr129 + case 94: + goto tr129 + case 95: + goto tr129 + case 96: + 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 tr303 + case 463: + goto tr303 + case 464: + goto tr303 + case 465: + goto tr303 + case 466: + goto tr303 + case 467: + goto tr239 + case 469: + goto tr668 + case 470: + goto tr670 + case 99: + goto tr141 + case 471: + goto tr674 + case 472: + goto tr674 + case 473: + goto tr676 + case 475: + goto tr679 + case 476: + goto tr680 + case 478: + goto tr689 + case 479: + goto tr691 + case 480: + goto tr692 + case 481: + goto tr689 + case 482: + goto tr696 + case 484: + goto tr706 + case 485: + goto tr708 + case 486: + goto tr709 + case 487: + goto tr706 + case 488: + goto tr713 + case 490: + goto tr723 + case 491: + goto tr725 + case 492: + goto tr726 + case 493: + goto tr723 + case 494: + goto tr730 + case 496: + goto tr733 + case 498: + goto tr739 + case 499: + goto tr741 + case 500: + goto tr739 + case 103: + goto tr147 + case 501: + goto tr743 + case 503: + goto tr753 + case 504: + goto tr754 + case 505: + goto tr755 + case 506: + goto tr757 + case 507: + goto tr758 + case 508: + goto tr758 + case 104: + goto tr149 + case 105: + 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 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 + } + } + + _out: + { } - lval.Token(l.lastToken) - return -1 } - goto yyAction + + // line scanner/scanner.rl:509 + + token.FreeFloating = lex.FreeFloating + token.Value = string(lex.data[lex.ts:lex.te]) + + lval.Token(token) + + return int(tok) } diff --git a/scanner/scanner.l b/scanner/scanner.l deleted file mode 100644 index 3986e50..0000000 --- a/scanner/scanner.l +++ /dev/null @@ -1,690 +0,0 @@ -%{ -// Copyright (c) 2011 CZ.NIC z.s.p.o. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// blame: jnml, labs.nic.cz - -package scanner - -import ( - "fmt" - "github.com/z7zmey/php-parser/freefloating" - "github.com/cznic/golex/lex" -) - -const ( - INITIAL = iota - PHP - STRING - STRING_VAR - STRING_VAR_INDEX - STRING_VAR_NAME - PROPERTY - HEREDOC_END - NOWDOC - HEREDOC - BACKQUOTE - HALT_COMPILER -) - -func isValidFirstVarNameRune(r rune) bool { - return r >= 'A' && r <= 'Z' || r == '_' || r >= 'a' && r <= 'z' || r >= '\u007f' && r <= 'ÿ' -} - -func (l *Lexer) Lex(lval Lval) int { - l.FreeFloating = nil - c := l.Enter() -%} - -%s PHP STRING STRING_VAR STRING_VAR_INDEX STRING_VAR_NAME PROPERTY HEREDOC_END NOWDOC HEREDOC BACKQUOTE HALT_COMPILER - -%yyb last == '\n' || last = '\0' -%yyt l.getCurrentState() -%yyc c -%yyn c = l.Next() -%yym l.Mark() -%optioncase-insensitive - -LNUM [0-9]+ -DNUM ([0-9]*"."[0-9]+)|([0-9]+"."[0-9]*) -HNUM 0x[0-9a-fA-F]+ -BNUM 0b[01]+ -EXPONENT_DNUM (({LNUM}|{DNUM})[eE][+-]?{LNUM}) -VAR_NAME [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* -OPERATORS [;:,.\[\]()|\/\^&\+-*=%!~$<>?@] -NEW_LINE (\r|\n|\r\n) -ANY_CHAR . - -%% - c = l.Rule0() - -[ \t\n\r]+ l.addFreeFloating(freefloating.WhiteSpaceType, l.Token()) -. - tb := []lex.Char{} - - for { - if c == -1 { - tb = l.Token(); - break; - } - - if '?' == rune(c) { - tb = l.Token(); - if (len(tb) < 2 || tb[len(tb)-1].Rune != '<') { - c = l.Next() - continue; - } - - tb = l.ungetChars(1) - break; - } - - c = l.Next() - } - - lval.Token(l.createToken(tb)) - return int(T_INLINE_HTML) - -\<\?php([ \t]|{NEW_LINE}) l.addFreeFloating(freefloating.TokenType, l.Token()[:5]);l.Begin(PHP);l.ungetChars(len(l.Token())-5) -\<\? l.addFreeFloating(freefloating.TokenType, l.Token());l.Begin(PHP); -\<\?= l.Begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_ECHO); - - -[ \t\n\r]+ l.addFreeFloating(freefloating.WhiteSpaceType, l.Token()) -[;][ \t\n\r]*\?\>{NEW_LINE}? l.Begin(INITIAL);lval.Token(l.createToken(l.Token())); return Rune2Class(';'); -\?\>{NEW_LINE}? l.Begin(INITIAL);lval.Token(l.createToken(l.Token())); return Rune2Class(';'); - -{DNUM}|{EXPONENT_DNUM} lval.Token(l.createToken(l.Token())); return int(T_DNUMBER) -{BNUM} - tb := l.Token() - i:=2 - BNUMFOR:for { - if i > len(tb)-1 { - break BNUMFOR; - } - switch tb[i].Rune { - case '0': i++; - default: break BNUMFOR; - } - } - if len(tb) - i < 64 { - lval.Token(l.createToken(l.Token())); return int(T_LNUMBER) - } else { - lval.Token(l.createToken(l.Token())); return int(T_DNUMBER) - } -{LNUM} - if len(l.Token()) < 20 { - lval.Token(l.createToken(l.Token())); return int(T_LNUMBER) - } else { - lval.Token(l.createToken(l.Token())); return int(T_DNUMBER) - } -{HNUM} - tb := l.Token() - i:=2 - HNUMFOR:for { - if i > len(tb)-1 { - break HNUMFOR; - } - switch tb[i].Rune { - case '0': i++; - default: break HNUMFOR; - } - } - length := len(tb) - i - if length < 16 || (length == 16 && tb[i].Rune <= '7') { - lval.Token(l.createToken(l.Token())); return int(T_LNUMBER) - } else { - lval.Token(l.createToken(l.Token())); return int(T_DNUMBER) - } - -abstract lval.Token(l.createToken(l.Token())); return int(T_ABSTRACT) -array lval.Token(l.createToken(l.Token())); return int(T_ARRAY) -as lval.Token(l.createToken(l.Token())); return int(T_AS) -break lval.Token(l.createToken(l.Token())); return int(T_BREAK) -callable lval.Token(l.createToken(l.Token())); return int(T_CALLABLE) -case lval.Token(l.createToken(l.Token())); return int(T_CASE) -catch lval.Token(l.createToken(l.Token())); return int(T_CATCH) -class lval.Token(l.createToken(l.Token())); return int(T_CLASS) -clone lval.Token(l.createToken(l.Token())); return int(T_CLONE) -const lval.Token(l.createToken(l.Token())); return int(T_CONST) -continue lval.Token(l.createToken(l.Token())); return int(T_CONTINUE) -declare lval.Token(l.createToken(l.Token())); return int(T_DECLARE) -default lval.Token(l.createToken(l.Token())); return int(T_DEFAULT) -do lval.Token(l.createToken(l.Token())); return int(T_DO) -echo lval.Token(l.createToken(l.Token())); return int(T_ECHO) -else lval.Token(l.createToken(l.Token())); return int(T_ELSE) -elseif lval.Token(l.createToken(l.Token())); return int(T_ELSEIF) -empty lval.Token(l.createToken(l.Token())); return int(T_EMPTY) -enddeclare lval.Token(l.createToken(l.Token())); return int(T_ENDDECLARE) -endfor lval.Token(l.createToken(l.Token())); return int(T_ENDFOR) -endforeach lval.Token(l.createToken(l.Token())); return int(T_ENDFOREACH) -endif lval.Token(l.createToken(l.Token())); return int(T_ENDIF) -endswitch lval.Token(l.createToken(l.Token())); return int(T_ENDSWITCH) -endwhile lval.Token(l.createToken(l.Token())); return int(T_ENDWHILE) -eval lval.Token(l.createToken(l.Token())); return int(T_EVAL) -exit|die lval.Token(l.createToken(l.Token())); return int(T_EXIT) -extends lval.Token(l.createToken(l.Token())); return int(T_EXTENDS) -final lval.Token(l.createToken(l.Token())); return int(T_FINAL) -finally lval.Token(l.createToken(l.Token())); return int(T_FINALLY) -for lval.Token(l.createToken(l.Token())); return int(T_FOR) -foreach lval.Token(l.createToken(l.Token())); return int(T_FOREACH) -function|cfunction lval.Token(l.createToken(l.Token())); return int(T_FUNCTION) -global lval.Token(l.createToken(l.Token())); return int(T_GLOBAL) -goto lval.Token(l.createToken(l.Token())); return int(T_GOTO) -if lval.Token(l.createToken(l.Token())); return int(T_IF) -isset lval.Token(l.createToken(l.Token())); return int(T_ISSET) -implements lval.Token(l.createToken(l.Token())); return int(T_IMPLEMENTS) -instanceof lval.Token(l.createToken(l.Token())); return int(T_INSTANCEOF) -insteadof lval.Token(l.createToken(l.Token())); return int(T_INSTEADOF) -interface lval.Token(l.createToken(l.Token())); return int(T_INTERFACE) -list lval.Token(l.createToken(l.Token())); return int(T_LIST) -namespace lval.Token(l.createToken(l.Token())); return int(T_NAMESPACE) -private lval.Token(l.createToken(l.Token())); return int(T_PRIVATE) -public lval.Token(l.createToken(l.Token())); return int(T_PUBLIC) -print lval.Token(l.createToken(l.Token())); return int(T_PRINT) -protected lval.Token(l.createToken(l.Token())); return int(T_PROTECTED) -return lval.Token(l.createToken(l.Token())); return int(T_RETURN) -static lval.Token(l.createToken(l.Token())); return int(T_STATIC) -switch lval.Token(l.createToken(l.Token())); return int(T_SWITCH) -throw lval.Token(l.createToken(l.Token())); return int(T_THROW) -trait lval.Token(l.createToken(l.Token())); return int(T_TRAIT) -try lval.Token(l.createToken(l.Token())); return int(T_TRY) -unset lval.Token(l.createToken(l.Token())); return int(T_UNSET) -use lval.Token(l.createToken(l.Token())); return int(T_USE) -var lval.Token(l.createToken(l.Token())); return int(T_VAR) -while lval.Token(l.createToken(l.Token())); return int(T_WHILE) -yield[ \t\n\r]+from lval.Token(l.createToken(l.Token())); return int(T_YIELD_FROM) -yield lval.Token(l.createToken(l.Token())); return int(T_YIELD) -include lval.Token(l.createToken(l.Token())); return int(T_INCLUDE) -include_once lval.Token(l.createToken(l.Token())); return int(T_INCLUDE_ONCE) -require lval.Token(l.createToken(l.Token())); return int(T_REQUIRE) -require_once lval.Token(l.createToken(l.Token())); return int(T_REQUIRE_ONCE) -__CLASS__ lval.Token(l.createToken(l.Token())); return int(T_CLASS_C) -__DIR__ lval.Token(l.createToken(l.Token())); return int(T_DIR) -__FILE__ lval.Token(l.createToken(l.Token())); return int(T_FILE) -__FUNCTION__ lval.Token(l.createToken(l.Token())); return int(T_FUNC_C) -__LINE__ lval.Token(l.createToken(l.Token())); return int(T_LINE) -__NAMESPACE__ lval.Token(l.createToken(l.Token())); return int(T_NS_C) -__METHOD__ lval.Token(l.createToken(l.Token())); return int(T_METHOD_C) -__TRAIT__ lval.Token(l.createToken(l.Token())); return int(T_TRAIT_C) -__halt_compiler lval.Token(l.createToken(l.Token())); return int(T_HALT_COMPILER) -\([ \t]*array[ \t]*\) lval.Token(l.createToken(l.Token())); return int(T_ARRAY_CAST) -\([ \t]*(bool|boolean)[ \t]*\) lval.Token(l.createToken(l.Token())); return int(T_BOOL_CAST) -\([ \t]*(real|double|float)[ \t]*\) lval.Token(l.createToken(l.Token())); return int(T_DOUBLE_CAST) -\([ \t]*(int|integer)[ \t]*\) lval.Token(l.createToken(l.Token())); return int(T_INT_CAST) -\([ \t]*object[ \t]*\) lval.Token(l.createToken(l.Token())); return int(T_OBJECT_CAST) -\([ \t]*(string|binary)[ \t]*\) lval.Token(l.createToken(l.Token())); return int(T_STRING_CAST) -\([ \t]*unset[ \t]*\) lval.Token(l.createToken(l.Token())); return int(T_UNSET_CAST) -new lval.Token(l.createToken(l.Token())); return int(T_NEW) -and lval.Token(l.createToken(l.Token())); return int(T_LOGICAL_AND) -or lval.Token(l.createToken(l.Token())); return int(T_LOGICAL_OR) -xor lval.Token(l.createToken(l.Token())); return int(T_LOGICAL_XOR) -\\ lval.Token(l.createToken(l.Token())); return int(T_NS_SEPARATOR) -\.\.\. lval.Token(l.createToken(l.Token())); return int(T_ELLIPSIS) -:: lval.Token(l.createToken(l.Token())); return int(T_PAAMAYIM_NEKUDOTAYIM) // T_DOUBLE_COLON -&& lval.Token(l.createToken(l.Token())); return int(T_BOOLEAN_AND) -\|\| lval.Token(l.createToken(l.Token())); return int(T_BOOLEAN_OR) -&= lval.Token(l.createToken(l.Token())); return int(T_AND_EQUAL) -\|= lval.Token(l.createToken(l.Token())); return int(T_OR_EQUAL) -\.= lval.Token(l.createToken(l.Token())); return int(T_CONCAT_EQUAL) -\*= lval.Token(l.createToken(l.Token())); return int(T_MUL_EQUAL) -\*\*= lval.Token(l.createToken(l.Token())); return int(T_POW_EQUAL) -[/]= lval.Token(l.createToken(l.Token())); return int(T_DIV_EQUAL) -\+= lval.Token(l.createToken(l.Token())); return int(T_PLUS_EQUAL) --= lval.Token(l.createToken(l.Token())); return int(T_MINUS_EQUAL) -\^= lval.Token(l.createToken(l.Token())); return int(T_XOR_EQUAL) -%= lval.Token(l.createToken(l.Token())); return int(T_MOD_EQUAL) --- lval.Token(l.createToken(l.Token())); return int(T_DEC) -\+\+ lval.Token(l.createToken(l.Token())); return int(T_INC) -=> lval.Token(l.createToken(l.Token())); return int(T_DOUBLE_ARROW) -\<=\> lval.Token(l.createToken(l.Token())); return int(T_SPACESHIP) -\!=|\<\> lval.Token(l.createToken(l.Token())); return int(T_IS_NOT_EQUAL) -\!== lval.Token(l.createToken(l.Token())); return int(T_IS_NOT_IDENTICAL) -== lval.Token(l.createToken(l.Token())); return int(T_IS_EQUAL) -=== lval.Token(l.createToken(l.Token())); return int(T_IS_IDENTICAL) -\<\<= lval.Token(l.createToken(l.Token())); return int(T_SL_EQUAL) -\>\>= lval.Token(l.createToken(l.Token())); return int(T_SR_EQUAL) -\>= lval.Token(l.createToken(l.Token())); return int(T_IS_GREATER_OR_EQUAL) -\<= lval.Token(l.createToken(l.Token())); return int(T_IS_SMALLER_OR_EQUAL) -\*\* lval.Token(l.createToken(l.Token())); return int(T_POW) -\<\< lval.Token(l.createToken(l.Token())); return int(T_SL) -\>\> lval.Token(l.createToken(l.Token())); return int(T_SR) -\?\? lval.Token(l.createToken(l.Token())); return int(T_COALESCE) -(#|[/][/]) - tb := l.Token() - - for { - if c == -1 { - break - } - - tb = append(tb, l.Last) - - switch c { - case '\r': - c = l.Next() - if c == '\n' { - continue - } - - case '\n': - c = l.Next() - - case '?': - c = l.Next() - if c == '>' { - l.ungetChars(1) - tb = tb[:len(tb)-1] - break - } - continue - - default: - c = l.Next() - continue - } - - break; - } - - l.addFreeFloating(freefloating.CommentType, tb) - -[/][*][*][/] - l.addFreeFloating(freefloating.CommentType, l.Token()) -([/][*])|([/][*][*]) - tb := l.Token() - is_doc_comment := false - if len(tb) > 2 { - is_doc_comment = true - l.PhpDocComment = "" - } - - c = l.Next() - for { - if c == -1 { - break; // TODO: Unterminated comment starting line %d - } - - if l.Prev.Rune == '*' && l.Last.Rune == '/' { - c = l.Next() - break; - } - - c = l.Next() - } - - if is_doc_comment { - l.PhpDocComment = string(l.TokenBytes(nil)) - l.addFreeFloating(freefloating.CommentType, l.Token()) - } else { - l.addFreeFloating(freefloating.CommentType, l.Token()) - } - -{OPERATORS} lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) - -\{ l.pushState(PHP); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) -\} l.popState(); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])); l.PhpDocComment = "" -\${VAR_NAME} lval.Token(l.createToken(l.Token())); return int(T_VARIABLE) -{VAR_NAME} lval.Token(l.createToken(l.Token())); return int(T_STRING) - --> l.Begin(PROPERTY);lval.Token(l.createToken(l.Token())); return int(T_OBJECT_OPERATOR); -[ \t\n\r]+ l.addFreeFloating(freefloating.WhiteSpaceType, l.Token()) --> lval.Token(l.createToken(l.Token())); return int(T_OBJECT_OPERATOR); -{VAR_NAME} l.Begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_STRING); -. l.ungetChars(1);l.Begin(PHP) - -[\']([^\\\']*(\\(.|\n))*)*[\'] lval.Token(l.createToken(l.Token())); return int(T_CONSTANT_ENCAPSED_STRING); - -` l.Begin(BACKQUOTE); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) -` l.Begin(PHP); lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) - -[b]?\<\<\<[ \t]*({VAR_NAME}|([']{VAR_NAME}['])|(["]{VAR_NAME}["])){NEW_LINE} - tb := l.Token() - binPrefix := 0 - if tb[0].Rune == 'b' { - binPrefix = 1 - } - - lblFirst := 3 + binPrefix - lblLast := len(tb)-2 - if tb[lblLast].Rune == '\r' { - lblLast-- - } - - for { - if tb[lblFirst].Rune == ' ' || tb[lblFirst].Rune == '\t' { - lblFirst++ - continue - } - - break - } - - heredocToken := make([]lex.Char, lblLast - lblFirst + 1) - copy(heredocToken, tb[lblFirst:lblLast+1]) - - switch tb[lblFirst].Rune { - case '\'' : - lblFirst++ - lblLast-- - l.Begin(NOWDOC) - case '"' : - lblFirst++ - lblLast-- - l.Begin(HEREDOC) - default: - l.Begin(HEREDOC) - } - - l.heredocLabel = l.tokenString(tb[lblFirst:lblLast+1]) - - ungetCnt := len(l.heredocLabel) - searchLabelAhead := []byte{} - for i := 0; i < len(l.heredocLabel); i++ { - if c == -1 { - break; - } - searchLabelAhead = append(searchLabelAhead, byte(rune(c))) - c = l.Next() - } - - if l.heredocLabel == string(searchLabelAhead) && ';' == rune(c) { - ungetCnt++ - c = l.Next() - if '\n' == rune(c) || '\r' == rune(c) { - l.Begin(HEREDOC_END) - } - } - - l.ungetChars(ungetCnt) - - lval.Token(l.createToken(heredocToken)); - return int(T_START_HEREDOC) - -.|[ \t\n\r] - searchLabel := []byte{} - tb := []lex.Char{} - - for { - if c == -1 { - break; - } - - if '\n' == rune(c) || '\r' == rune(c) { - if l.heredocLabel + ";" == string(searchLabel) { - l.Begin(HEREDOC_END) - tb = l.ungetChars(len(l.heredocLabel)+1) - tb = tb[:len(tb)-1] - break; - } - - if l.heredocLabel == string(searchLabel) { - l.Begin(HEREDOC_END) - tb = l.ungetChars(len(l.heredocLabel)) - tb = tb[:len(tb)-1] - break; - } - - searchLabel = []byte{} - } else { - searchLabel = append(searchLabel, byte(rune(c))) - } - - c = l.Next() - } - - lval.Token(l.createToken(tb) ) - return int(T_ENCAPSED_AND_WHITESPACE) - -{VAR_NAME}\; l.Begin(PHP);lval.Token(l.createToken(l.ungetChars(1))); return int(T_END_HEREDOC) -{VAR_NAME} l.Begin(PHP);lval.Token(l.createToken(l.Token())); return int(T_END_HEREDOC) - -[b]?[\"] - binPrefix := l.Token()[0].Rune == 'b' - - beginString := func() int { - cnt := 1; if (binPrefix) {cnt = 2} - - l.ungetChars(len(l.Token())-cnt) - chars := l.Token()[:cnt] - l.pushState(STRING) - - lval.Token(l.createToken(chars)); return Rune2Class('"') - } - - F:for { - if c == -1 { - break; - } - - switch c { - case '"' : - c = l.Next(); - lval.Token(l.createToken(l.Token())); return int(T_CONSTANT_ENCAPSED_STRING) - break F; - - case '$': - c = l.Next(); - if rune(c) == '{' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z' || c >= '\u007f' && c <= 'ÿ' { - return beginString() - break F; - } - l.ungetChars(0) - - case '{': - c = l.Next(); - if rune(c) == '$' { - return beginString() - break F; - } - l.ungetChars(0) - - case '\\': - c = l.Next(); - } - - c = l.Next() - } - -\" l.popState(); lval.Token(l.createToken(l.Token())); return Rune2Class(l.Token()[0].Rune) -\{\$ lval.Token(l.createToken(l.ungetChars(1))); l.pushState(PHP); return int(T_CURLY_OPEN) -\$\{ l.pushState(STRING_VAR_NAME); lval.Token(l.createToken(l.Token())); return int(T_DOLLAR_OPEN_CURLY_BRACES) -\${VAR_NAME} l.ungetChars(len(l.Token()));l.pushState(STRING_VAR) -.|[ \t\n\r] - currentChar := l.Prev - tb := []lex.Char{currentChar} - for { - switch currentChar.Rune { - case '$': - if c == '{' || isValidFirstVarNameRune(rune(c)) { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - case '{': - if rune(c) == '$' { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - case '\\': - currentChar := l.Last - tb = append(tb, currentChar) - c = l.Next(); - } - - if rune(c) == '"' { - lval.Token(l.createToken(l.Token())); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - currentChar = l.Last - tb = append(tb, currentChar) - c = l.Next() - - if c == -1 { - break; - } - } - -.|[ \t\n\r] - currentChar := l.Prev - tb := []lex.Char{currentChar} - - for { - switch currentChar.Rune { - case '$': - if c == '{' || isValidFirstVarNameRune(rune(c)) { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - case '{': - if rune(c) == '$' { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - case '\\': - currentChar := l.Last - tb = append(tb, currentChar) - c = l.Next(); - } - - if rune(c) == '`' { - lval.Token(l.createToken(l.Token())); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - currentChar = l.Last - tb = append(tb, currentChar) - c = l.Next() - - if c == -1 { - break; - } - } - -.|[ \t\n\r] - searchLabel := []byte{} - currentChar := l.Prev - tb := []lex.Char{currentChar} - - HEREDOC_FOR:for { - nls := 0 - - switch currentChar.Rune { - case '\r': - - if c == '\n' { - nls = 1 - currentChar := l.Last - tb = append(tb, currentChar) - c = l.Next(); - } - - fallthrough - - case '\n': - if l.heredocLabel + ";" == string(searchLabel) { - l.Begin(HEREDOC_END) - l.ungetChars(len(l.heredocLabel)+1+nls) - - i := len(tb) - len(l.heredocLabel) - 3 - nls - if i < 1 { - break HEREDOC_FOR; - } - tb = tb[:i] - - lval.Token(l.createToken(tb)); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - if l.heredocLabel == string(searchLabel) { - l.Begin(HEREDOC_END) - l.ungetChars(len(l.heredocLabel)+nls) - - i := len(tb) - len(l.heredocLabel) - 2 - nls - if i < 1 { - break HEREDOC_FOR; - } - tb = tb[:i] - - lval.Token(l.createToken(tb)); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - searchLabel = []byte{} - - case '$': - if c == '{' || isValidFirstVarNameRune(rune(c)) { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - case '{': - if rune(c) == '$' { - l.ungetChars(1) - lval.Token(l.createToken(tb[:len(tb)-1])); - return int(T_ENCAPSED_AND_WHITESPACE) - } - - case '\\': - if c != '\n' && c != '\r' { - currentChar := l.Last - tb = append(tb, currentChar) - c = l.Next(); - } - - default: - searchLabel = append(searchLabel, byte(rune(currentChar.Rune))) - } - - if c == -1 { - break; - } - - currentChar = l.Last - tb = append(tb, currentChar) - c = l.Next() - - } - -\${VAR_NAME} lval.Token(l.createToken(l.Token())); return int(T_VARIABLE) -->{VAR_NAME} lval.Token(l.createToken(l.ungetChars(len(l.Token())-2))); return int(T_OBJECT_OPERATOR) -{VAR_NAME} l.popState();lval.Token(l.createToken(l.Token())); return int(T_STRING) -\[ l.pushState(STRING_VAR_INDEX);lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) -.|[ \t\n\r] l.ungetChars(1);l.popState() - -{LNUM}|{HNUM}|{BNUM} lval.Token(l.createToken(l.Token())); return int(T_NUM_STRING) -\${VAR_NAME} lval.Token(l.createToken(l.Token())); return int(T_VARIABLE) -{VAR_NAME} lval.Token(l.createToken(l.Token())); return int(T_STRING) -\] l.popState(); l.popState();lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) -[ \n\r\t\\'#] l.popState(); l.popState();lval.Token(l.createToken(l.Token())); return int(T_ENCAPSED_AND_WHITESPACE) -{OPERATORS} lval.Token(l.createToken(l.Token())); return Rune2Class(rune(l.TokenBytes(nil)[0])) -{ANY_CHAR} l.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", l.TokenBytes(nil)[0], l.TokenBytes(nil)[0]));l.Abort(); - -{VAR_NAME}[\[\}] l.popState();l.pushState(PHP);lval.Token(l.createToken(l.ungetChars(1))); return int(T_STRING_VARNAME) -. l.ungetChars(1);l.popState();l.pushState(PHP) - -.|[ \t\n\r] l.addFreeFloating(freefloating.TokenType, l.Token()) - -{ANY_CHAR} l.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", l.TokenBytes(nil)[0], l.TokenBytes(nil)[0]));l.Abort(); - -%% - if _, ok := l.Abort(); ok { - // always return same $end token - if l.lastToken == nil { - l.lastToken = l.createToken(l.Token()) - } - lval.Token(l.lastToken); - return -1 - } - goto yyAction -} diff --git a/scanner/scanner.rl b/scanner/scanner.rl new file mode 100644 index 0000000..c15fbdf --- /dev/null +++ b/scanner/scanner.rl @@ -0,0 +1,517 @@ +package scanner + +import ( + "fmt" + "strconv" + "strings" + + "github.com/z7zmey/php-parser/freefloating" +) + +%%{ + machine lexer; + write data; + access lex.; + variable p lex.p; + variable pe lex.pe; +}%% + +func NewLexer(data []byte) *Lexer { + lex := &Lexer{ + data: data, + pe: len(data), + stack: make([]int, 0), + + TokenPool: &TokenPool{}, + NewLines: NewLines{make([]int, 0, 128)}, + } + %% write init; + return lex +} + +func (lex *Lexer) Lex(lval Lval) int { + lex.FreeFloating = nil + eof := lex.pe + var tok TokenID + + token := lex.TokenPool.Get() + token.FreeFloating = lex.FreeFloating + token.Value = string(lex.data[0:0]) + + lblStart := 0 + lblEnd := 0 + + _, _ = lblStart, lblEnd + + %%{ + action heredoc_lbl_start {lblStart = lex.p} + action heredoc_lbl_end {lblEnd = lex.p} + + action constant_string_new_line { + 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) + } + } + + action is_not_heredoc_end { lex.isNotHeredocEnd(lex.p) } + action is_not_comment_end { lex.isNotPhpCloseToken() && lex.isNotNewLine() } + action is_not_heredoc_end_or_var { lex.isNotHeredocEnd(lex.p) && lex.isNotStringVar() } + action is_not_string_end_or_var { lex.isNotStringEnd('"') && lex.isNotStringVar() } + action is_not_backqoute_end_or_var { lex.isNotStringEnd('`') && lex.isNotStringVar() } + + newline = ('\r\n' >(nl, 1) | '\r' >(nl, 0) | '\n' >(nl, 0)) %{lex.NewLines.Append(lex.p);}; + any_line = any | newline; + whitespace = [\t\v\f ]; + whitespace_line = [\t\v\f ] | newline; + + 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); + varname_second = varname_first | [0-9]; + varname = varname_first (varname_second)*; + heredoc_label = varname >heredoc_lbl_start %heredoc_lbl_end; + operators = ';'|':'|','|'.'|'['|']'|'('|')'|'|'|'/'|'^'|'&'|'+'|'-'|'*'|'='|'%'|'!'|'~'|'$'|'<'|'>'|'?'|'@'; + + prepush { lex.growCallStack(); } + + constant_string = + start: ( + "'" -> qoute + | "b"i? '"' -> double_qoute + ), + + # single qoute string + + qoute: ( + (any - [\\'\r\n]) -> qoute + | "\r" @constant_string_new_line -> qoute + | "\n" @constant_string_new_line -> qoute + | "\\" -> qoute_any + | "'" -> final + ), + qoute_any: ( + (any - [\r\n]) -> qoute + | "\r" @constant_string_new_line -> qoute + | "\n" @constant_string_new_line -> qoute + ), + + # double qoute string + + double_qoute: ( + (any - [\\"${\r\n]) -> double_qoute + | "\r" @constant_string_new_line -> double_qoute + | "\n" @constant_string_new_line -> double_qoute + | "\\" -> double_qoute_any + | '"' -> final + | '$' -> double_qoute_nonvarname + | '{' -> double_qoute_nondollar + ), + double_qoute_any: ( + (any - [\r\n]) -> double_qoute + | "\r" @constant_string_new_line -> double_qoute + | "\n" @constant_string_new_line -> double_qoute + ), + double_qoute_nondollar: ( + (any - [\\$"\r\n]) -> double_qoute + | "\r" @constant_string_new_line -> double_qoute + | "\n" @constant_string_new_line -> double_qoute + | "\\" -> double_qoute_any + | '"' -> final + ), + double_qoute_nonvarname: ( + (any - [\\{"\r\n] - varname_first) -> double_qoute + | "\r" @constant_string_new_line -> double_qoute + | "\n" @constant_string_new_line -> double_qoute + | "\\" -> double_qoute_any + | '"' -> final + ); + + 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) + tok = T_INLINE_HTML; + fbreak; + }; + ' { + lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) + fnext php; + }; + ' { + lex.ungetCnt(lex.te - lex.ts - 5) + lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.ts+5) + fnext php; + }; + ' { + lex.setTokenPosition(token); + tok = T_ECHO; + fnext php; + fbreak; + }; + *|; + + php := |* + whitespace_line* => {lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te)}; + '?>' 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 => { + 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; fbreak; + } + + lex.setTokenPosition(token); tok = T_DNUMBER; fbreak; + }; + lnum => { + 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 => { + 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; fbreak; + } + + lex.setTokenPosition(token); tok = T_DNUMBER; fbreak; + }; + + 'abstract'i => {lex.setTokenPosition(token); tok = T_ABSTRACT; fbreak;}; + 'array'i => {lex.setTokenPosition(token); tok = T_ARRAY; fbreak;}; + 'as'i => {lex.setTokenPosition(token); tok = T_AS; fbreak;}; + 'break'i => {lex.setTokenPosition(token); tok = T_BREAK; fbreak;}; + 'callable'i => {lex.setTokenPosition(token); tok = T_CALLABLE; fbreak;}; + 'case'i => {lex.setTokenPosition(token); tok = T_CASE; fbreak;}; + 'catch'i => {lex.setTokenPosition(token); tok = T_CATCH; fbreak;}; + 'class'i => {lex.setTokenPosition(token); tok = T_CLASS; fbreak;}; + 'clone'i => {lex.setTokenPosition(token); tok = T_CLONE; fbreak;}; + 'const'i => {lex.setTokenPosition(token); tok = T_CONST; fbreak;}; + 'continue'i => {lex.setTokenPosition(token); tok = T_CONTINUE; fbreak;}; + 'declare'i => {lex.setTokenPosition(token); tok = T_DECLARE; fbreak;}; + 'default'i => {lex.setTokenPosition(token); tok = T_DEFAULT; fbreak;}; + 'do'i => {lex.setTokenPosition(token); tok = T_DO; fbreak;}; + 'echo'i => {lex.setTokenPosition(token); tok = T_ECHO; fbreak;}; + 'else'i => {lex.setTokenPosition(token); tok = T_ELSE; fbreak;}; + 'elseif'i => {lex.setTokenPosition(token); tok = T_ELSEIF; fbreak;}; + 'empty'i => {lex.setTokenPosition(token); tok = T_EMPTY; fbreak;}; + 'enddeclare'i => {lex.setTokenPosition(token); tok = T_ENDDECLARE; fbreak;}; + 'endfor'i => {lex.setTokenPosition(token); tok = T_ENDFOR; fbreak;}; + 'endforeach'i => {lex.setTokenPosition(token); tok = T_ENDFOREACH; fbreak;}; + 'endif'i => {lex.setTokenPosition(token); tok = T_ENDIF; fbreak;}; + 'endswitch'i => {lex.setTokenPosition(token); tok = T_ENDSWITCH; fbreak;}; + 'endwhile'i => {lex.setTokenPosition(token); tok = T_ENDWHILE; fbreak;}; + 'eval'i => {lex.setTokenPosition(token); tok = T_EVAL; fbreak;}; + 'exit'i | 'die'i => {lex.setTokenPosition(token); tok = T_EXIT; fbreak;}; + 'extends'i => {lex.setTokenPosition(token); tok = T_EXTENDS; fbreak;}; + 'final'i => {lex.setTokenPosition(token); tok = T_FINAL; fbreak;}; + 'finally'i => {lex.setTokenPosition(token); tok = T_FINALLY; fbreak;}; + '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;}; + 'isset'i => {lex.setTokenPosition(token); tok = T_ISSET; fbreak;}; + 'implements'i => {lex.setTokenPosition(token); tok = T_IMPLEMENTS; fbreak;}; + 'instanceof'i => {lex.setTokenPosition(token); tok = T_INSTANCEOF; fbreak;}; + 'insteadof'i => {lex.setTokenPosition(token); tok = T_INSTEADOF; fbreak;}; + 'interface'i => {lex.setTokenPosition(token); tok = T_INTERFACE; fbreak;}; + 'list'i => {lex.setTokenPosition(token); tok = T_LIST; fbreak;}; + 'namespace'i => {lex.setTokenPosition(token); tok = T_NAMESPACE; fbreak;}; + 'private'i => {lex.setTokenPosition(token); tok = T_PRIVATE; fbreak;}; + 'public'i => {lex.setTokenPosition(token); tok = T_PUBLIC; fbreak;}; + 'print'i => {lex.setTokenPosition(token); tok = T_PRINT; fbreak;}; + 'protected'i => {lex.setTokenPosition(token); tok = T_PROTECTED; fbreak;}; + 'return'i => {lex.setTokenPosition(token); tok = T_RETURN; fbreak;}; + 'static'i => {lex.setTokenPosition(token); tok = T_STATIC; fbreak;}; + 'switch'i => {lex.setTokenPosition(token); tok = T_SWITCH; fbreak;}; + 'throw'i => {lex.setTokenPosition(token); tok = T_THROW; fbreak;}; + 'trait'i => {lex.setTokenPosition(token); tok = T_TRAIT; fbreak;}; + 'try'i => {lex.setTokenPosition(token); tok = T_TRY; fbreak;}; + 'unset'i => {lex.setTokenPosition(token); tok = T_UNSET; fbreak;}; + 'use'i => {lex.setTokenPosition(token); tok = T_USE; fbreak;}; + 'var'i => {lex.setTokenPosition(token); tok = T_VAR; fbreak;}; + 'while'i => {lex.setTokenPosition(token); tok = T_WHILE; fbreak;}; + 'yield'i whitespace_line* 'from'i => {lex.setTokenPosition(token); tok = T_YIELD_FROM; fbreak;}; + 'yield'i => {lex.setTokenPosition(token); tok = T_YIELD; fbreak;}; + 'include'i => {lex.setTokenPosition(token); tok = T_INCLUDE; fbreak;}; + 'include_once'i => {lex.setTokenPosition(token); tok = T_INCLUDE_ONCE; fbreak;}; + 'require'i => {lex.setTokenPosition(token); tok = T_REQUIRE; fbreak;}; + 'require_once'i => {lex.setTokenPosition(token); tok = T_REQUIRE_ONCE; fbreak;}; + '__CLASS__'i => {lex.setTokenPosition(token); tok = T_CLASS_C; fbreak;}; + '__DIR__'i => {lex.setTokenPosition(token); tok = T_DIR; fbreak;}; + '__FILE__'i => {lex.setTokenPosition(token); tok = T_FILE; fbreak;}; + '__FUNCTION__'i => {lex.setTokenPosition(token); tok = T_FUNC_C; fbreak;}; + '__LINE__'i => {lex.setTokenPosition(token); tok = T_LINE; fbreak;}; + '__NAMESPACE__'i => {lex.setTokenPosition(token); tok = T_NS_C; fbreak;}; + '__METHOD__'i => {lex.setTokenPosition(token); tok = T_METHOD_C; fbreak;}; + '__TRAIT__'i => {lex.setTokenPosition(token); tok = T_TRAIT_C; fbreak;}; + '__halt_compiler'i => {lex.setTokenPosition(token); tok = T_HALT_COMPILER; fnext halt_compiller_open_parenthesis; fbreak;}; + 'new'i => {lex.setTokenPosition(token); tok = T_NEW; fbreak;}; + 'and'i => {lex.setTokenPosition(token); tok = T_LOGICAL_AND; fbreak;}; + 'or'i => {lex.setTokenPosition(token); tok = T_LOGICAL_OR; fbreak;}; + 'xor'i => {lex.setTokenPosition(token); tok = T_LOGICAL_XOR; fbreak;}; + '\\' => {lex.setTokenPosition(token); tok = T_NS_SEPARATOR; fbreak;}; + '...' => {lex.setTokenPosition(token); tok = T_ELLIPSIS; fbreak;}; + '::' => {lex.setTokenPosition(token); tok = T_PAAMAYIM_NEKUDOTAYIM; fbreak;}; + '&&' => {lex.setTokenPosition(token); tok = T_BOOLEAN_AND; fbreak;}; + '||' => {lex.setTokenPosition(token); tok = T_BOOLEAN_OR; fbreak;}; + '&=' => {lex.setTokenPosition(token); tok = T_AND_EQUAL; fbreak;}; + '|=' => {lex.setTokenPosition(token); tok = T_OR_EQUAL; fbreak;}; + '.=' => {lex.setTokenPosition(token); tok = T_CONCAT_EQUAL; fbreak;}; + '*=' => {lex.setTokenPosition(token); tok = T_MUL_EQUAL; fbreak;}; + '**=' => {lex.setTokenPosition(token); tok = T_POW_EQUAL; fbreak;}; + '/=' => {lex.setTokenPosition(token); tok = T_DIV_EQUAL; fbreak;}; + '+=' => {lex.setTokenPosition(token); tok = T_PLUS_EQUAL; fbreak;}; + '-=' => {lex.setTokenPosition(token); tok = T_MINUS_EQUAL; fbreak;}; + '^=' => {lex.setTokenPosition(token); tok = T_XOR_EQUAL; fbreak;}; + '%=' => {lex.setTokenPosition(token); tok = T_MOD_EQUAL; fbreak;}; + '--' => {lex.setTokenPosition(token); tok = T_DEC; fbreak;}; + '++' => {lex.setTokenPosition(token); tok = T_INC; fbreak;}; + '=>' => {lex.setTokenPosition(token); tok = T_DOUBLE_ARROW; fbreak;}; + '<=>' => {lex.setTokenPosition(token); tok = T_SPACESHIP; fbreak;}; + '!=' | '<>' => {lex.setTokenPosition(token); tok = T_IS_NOT_EQUAL; fbreak;}; + '!==' => {lex.setTokenPosition(token); tok = T_IS_NOT_IDENTICAL; fbreak;}; + '==' => {lex.setTokenPosition(token); tok = T_IS_EQUAL; fbreak;}; + '===' => {lex.setTokenPosition(token); tok = T_IS_IDENTICAL; fbreak;}; + '<<=' => {lex.setTokenPosition(token); tok = T_SL_EQUAL; fbreak;}; + '>>=' => {lex.setTokenPosition(token); tok = T_SR_EQUAL; fbreak;}; + '>=' => {lex.setTokenPosition(token); tok = T_IS_GREATER_OR_EQUAL; fbreak;}; + '<=' => {lex.setTokenPosition(token); tok = T_IS_SMALLER_OR_EQUAL; fbreak;}; + '**' => {lex.setTokenPosition(token); tok = T_POW; fbreak;}; + '<<' => {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;}; + '(' whitespace* ('real'i|'double'i|'float'i) whitespace* ')' => {lex.setTokenPosition(token); tok = T_DOUBLE_CAST; fbreak;}; + '(' whitespace* ('int'i|'integer'i) whitespace* ')' => {lex.setTokenPosition(token); tok = T_INT_CAST; fbreak;}; + '(' whitespace* 'object'i whitespace* ')' => {lex.setTokenPosition(token); tok = T_OBJECT_CAST; fbreak;}; + '(' whitespace* ('string'i|'binary'i) whitespace* ')' => {lex.setTokenPosition(token); tok = T_STRING_CAST; fbreak;}; + '(' whitespace* 'unset'i whitespace* ')' => {lex.setTokenPosition(token); tok = T_UNSET_CAST; fbreak;}; + + ('#' | '//') any_line* when is_not_comment_end => { + lex.ungetStr("?>") + lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + }; + '/*' any_line* :>> '*/' { + isDocComment := false; + if lex.te - lex.ts > 4 && string(lex.data[lex.ts:lex.ts+3]) == "/**" { + isDocComment = true; + } + lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + + if isDocComment { + lex.PhpDocComment = string(lex.data[lex.ts:lex.te]) + } + }; + + operators => { + // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); + // tok = TokenID(Rune2Class(rune)); + lex.setTokenPosition(token); + tok = TokenID(int(lex.data[lex.ts])); + fbreak; + }; + + "{" => { lex.setTokenPosition(token); tok = TokenID(int('{')); lex.call(ftargs, fentry(php)); goto _out; }; + "}" => { lex.setTokenPosition(token); tok = TokenID(int('}')); lex.ret(1); lex.PhpDocComment = ""; goto _out;}; + "$" varname => { lex.setTokenPosition(token); tok = T_VARIABLE; fbreak; }; + varname => { lex.setTokenPosition(token); tok = T_STRING; fbreak; }; + + "->" => { lex.setTokenPosition(token); tok = T_OBJECT_OPERATOR; fnext property; fbreak; }; + + constant_string => { + lex.setTokenPosition(token); + tok = T_CONSTANT_ENCAPSED_STRING; + fbreak; + }; + + "b"i? "<<<" [ \t]* ( heredoc_label | ("'" heredoc_label "'") | ('"' heredoc_label '"') ) newline => { + lex.heredocLabel = lex.data[lblStart:lblEnd] + lex.setTokenPosition(token); + tok = T_START_HEREDOC; + + if lex.isHeredocEnd(lex.p+1) { + fnext heredoc_end; + } else if lex.data[lblStart-1] == '\'' { + fnext nowdoc; + } else { + fnext heredoc; + } + fbreak; + }; + "`" => {lex.setTokenPosition(token); tok = TokenID(int('`')); fnext backqote; fbreak;}; + '"' => {lex.setTokenPosition(token); tok = TokenID(int('"')); fnext template_string; fbreak;}; + + any_line => { + c := lex.data[lex.p] + lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)); + }; + *|; + + property := |* + whitespace_line* => {lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te)}; + "->" => {lex.setTokenPosition(token); tok = T_OBJECT_OPERATOR; fbreak;}; + varname => {lex.setTokenPosition(token); tok = T_STRING; fnext php; fbreak;}; + any => {lex.ungetCnt(1); fgoto php;}; + *|; + + nowdoc := |* + any_line* when is_not_heredoc_end => { + lex.setTokenPosition(token); + tok = T_ENCAPSED_AND_WHITESPACE; + fnext heredoc_end; + fbreak; + }; + *|; + + heredoc := |* + "{$" => {lex.ungetCnt(1); lex.setTokenPosition(token); tok = T_CURLY_OPEN; lex.call(ftargs, fentry(php)); goto _out;}; + "${" => {lex.setTokenPosition(token); tok = T_DOLLAR_OPEN_CURLY_BRACES; lex.call(ftargs, fentry(string_var_name)); goto _out;}; + "$" => {lex.ungetCnt(1); fcall string_var;}; + any_line* when is_not_heredoc_end_or_var => { + 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] != '{' { + fnext heredoc_end; + } + fbreak; + }; + *|; + + backqote := |* + "{$" => {lex.ungetCnt(1); lex.setTokenPosition(token); tok = T_CURLY_OPEN; lex.call(ftargs, fentry(php)); goto _out;}; + "${" => {lex.setTokenPosition(token); tok = T_DOLLAR_OPEN_CURLY_BRACES; lex.call(ftargs, fentry(string_var_name)); goto _out;}; + "$" => {lex.ungetCnt(1); fcall string_var;}; + '`' => {lex.setTokenPosition(token); tok = TokenID(int('`')); fnext php; fbreak;}; + any_line* when is_not_backqoute_end_or_var => { + lex.setTokenPosition(token); + tok = T_ENCAPSED_AND_WHITESPACE; + fbreak; + }; + *|; + + template_string := |* + "{$" => {lex.ungetCnt(1); lex.setTokenPosition(token); tok = T_CURLY_OPEN; lex.call(ftargs, fentry(php)); goto _out;}; + "${" => {lex.setTokenPosition(token); tok = T_DOLLAR_OPEN_CURLY_BRACES; lex.call(ftargs, fentry(string_var_name)); goto _out;}; + "$" => {lex.ungetCnt(1); fcall string_var;}; + '"' => {lex.setTokenPosition(token); tok = TokenID(int('"')); fnext php; fbreak;}; + any_line* when is_not_string_end_or_var => { + lex.setTokenPosition(token); + tok = T_ENCAPSED_AND_WHITESPACE; + fbreak; + }; + *|; + + heredoc_end := |* + varname -- ";" => { + lex.setTokenPosition(token); + tok = T_END_HEREDOC; + fnext php; + fbreak; + }; + varname => { + lex.setTokenPosition(token); + tok = T_END_HEREDOC; + fnext php; + fbreak; + }; + *|; + + string_var := |* + '$' varname => {lex.setTokenPosition(token); tok = T_VARIABLE; fbreak;}; + '->' varname_first => {lex.ungetCnt(1); lex.setTokenPosition(token); tok = T_OBJECT_OPERATOR; fbreak;}; + varname => {lex.setTokenPosition(token); tok = T_STRING; fbreak;}; + '[' => {lex.setTokenPosition(token); tok = TokenID(int('[')); lex.call(ftargs, fentry(string_var_index)); goto _out;}; + any => {lex.ungetCnt(1); fret;}; + *|; + + string_var_index := |* + lnum | hnum | bnum => {lex.setTokenPosition(token); tok = T_NUM_STRING; fbreak;}; + '$' varname => {lex.setTokenPosition(token); tok = T_VARIABLE; fbreak;}; + varname => {lex.setTokenPosition(token); tok = T_STRING; fbreak;}; + whitespace_line | [\\'#] => {lex.setTokenPosition(token); tok = T_ENCAPSED_AND_WHITESPACE; lex.ret(2); goto _out;}; + operators > (svi, 1) => {lex.setTokenPosition(token); tok = TokenID(int(lex.data[lex.ts])); fbreak;}; + ']' > (svi, 2) => {lex.setTokenPosition(token); tok = TokenID(int(']')); lex.ret(2); goto _out;}; + any_line => { + c := lex.data[lex.p] + lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)); + }; + *|; + + string_var_name := |* + varname ("[" | "}") => {lex.ungetCnt(1); lex.setTokenPosition(token); tok = T_STRING_VARNAME; fnext php; fbreak;}; + any => {lex.ungetCnt(1); fnext php;}; + *|; + + halt_compiller_open_parenthesis := |* + whitespace_line* => {lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te)}; + "(" => {lex.setTokenPosition(token); tok = TokenID(int('(')); fnext halt_compiller_close_parenthesis; fbreak;}; + any => {lex.ungetCnt(1); fnext php;}; + *|; + + halt_compiller_close_parenthesis := |* + whitespace_line* => {lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te)}; + ")" => {lex.setTokenPosition(token); tok = TokenID(int(')')); fnext halt_compiller_close_semicolon; fbreak;}; + any => {lex.ungetCnt(1); fnext php;}; + *|; + + halt_compiller_close_semicolon := |* + whitespace_line* => {lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te)}; + ";" => {lex.setTokenPosition(token); tok = TokenID(int(';')); fnext halt_compiller_end; fbreak;}; + any => {lex.ungetCnt(1); fnext php;}; + *|; + + halt_compiller_end := |* + any_line* => { lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te); }; + *|; + + write exec; + }%% + + token.FreeFloating = lex.FreeFloating + token.Value = string(lex.data[lex.ts:lex.te]) + + lval.Token(token) + + return int(tok); +} \ No newline at end of file diff --git a/scanner/scanner_test.go b/scanner/scanner_test.go index 1a5a206..eb496a2 100644 --- a/scanner/scanner_test.go +++ b/scanner/scanner_test.go @@ -1,20 +1,18 @@ -package scanner_test +package scanner import ( - "bytes" "testing" "github.com/z7zmey/php-parser/freefloating" "github.com/z7zmey/php-parser/position" - "github.com/z7zmey/php-parser/scanner" "gotest.tools/assert" ) type lval struct { - Tkn *scanner.Token + Tkn *Token } -func (lv *lval) Token(t *scanner.Token) { +func (lv *lval) Token(t *Token) { lv.Tkn = t } @@ -23,20 +21,6 @@ func TestTokens(t *testing.T) { ` + "\t\r\n" + ` ->prop - 'adsf\'adsf\'' - - "test" - b"\$var $4 {a" - ( array ) ( bool ) ( boolean ) @@ -214,201 +193,344 @@ func TestTokens(t *testing.T) { ` expected := []string{ - scanner.T_INLINE_HTML.String(), - scanner.LexerToken(scanner.Rune2Class(';')).String(), - scanner.T_ECHO.String(), - scanner.LexerToken(scanner.Rune2Class(';')).String(), + T_INLINE_HTML.String(), + TokenID(int(';')).String(), + T_INLINE_HTML.String(), + T_ECHO.String(), + TokenID(int(';')).String(), + T_INLINE_HTML.String(), - scanner.T_DNUMBER.String(), - scanner.T_DNUMBER.String(), - scanner.T_DNUMBER.String(), - scanner.T_DNUMBER.String(), + T_ABSTRACT.String(), + T_ARRAY.String(), + T_AS.String(), + T_BREAK.String(), + T_CALLABLE.String(), + T_CASE.String(), + T_CATCH.String(), + T_CLASS.String(), + T_CLONE.String(), + T_CONST.String(), + T_CONTINUE.String(), + T_DECLARE.String(), + T_DEFAULT.String(), + T_DO.String(), + T_ECHO.String(), + T_ELSE.String(), + T_ELSEIF.String(), + T_EMPTY.String(), + T_ENDDECLARE.String(), + T_ENDFOR.String(), + T_ENDFOREACH.String(), + T_ENDIF.String(), + T_ENDSWITCH.String(), + T_ENDWHILE.String(), + T_EVAL.String(), + T_EXIT.String(), + T_EXTENDS.String(), + T_FINAL.String(), + T_FINALLY.String(), + T_FOR.String(), + T_FOREACH.String(), + T_FUNCTION.String(), + T_FUNCTION.String(), + T_GLOBAL.String(), + T_GOTO.String(), + T_IF.String(), + T_ISSET.String(), + T_IMPLEMENTS.String(), + T_INSTANCEOF.String(), + T_INSTEADOF.String(), + T_INTERFACE.String(), + T_LIST.String(), + T_NAMESPACE.String(), + T_PRIVATE.String(), + T_PUBLIC.String(), + T_PRINT.String(), + T_PROTECTED.String(), + T_RETURN.String(), + T_STATIC.String(), + T_SWITCH.String(), + T_THROW.String(), + T_TRAIT.String(), + T_TRY.String(), + T_UNSET.String(), + T_USE.String(), + T_VAR.String(), + T_WHILE.String(), + T_YIELD_FROM.String(), + T_YIELD.String(), + T_INCLUDE.String(), + T_INCLUDE_ONCE.String(), + T_REQUIRE.String(), + T_REQUIRE_ONCE.String(), - scanner.T_LNUMBER.String(), - scanner.T_DNUMBER.String(), + T_CLASS_C.String(), + T_DIR.String(), + T_FILE.String(), + T_FUNC_C.String(), + T_LINE.String(), + T_NS_C.String(), + T_METHOD_C.String(), + T_TRAIT_C.String(), + T_HALT_COMPILER.String(), - scanner.T_LNUMBER.String(), - scanner.T_DNUMBER.String(), + T_NEW.String(), + T_LOGICAL_AND.String(), + T_LOGICAL_OR.String(), + T_LOGICAL_XOR.String(), - scanner.T_LNUMBER.String(), - scanner.T_DNUMBER.String(), + T_NS_SEPARATOR.String(), + T_ELLIPSIS.String(), + T_PAAMAYIM_NEKUDOTAYIM.String(), + T_BOOLEAN_AND.String(), + T_BOOLEAN_OR.String(), + T_AND_EQUAL.String(), + T_OR_EQUAL.String(), + T_CONCAT_EQUAL.String(), + T_MUL_EQUAL.String(), + T_POW_EQUAL.String(), + T_DIV_EQUAL.String(), + T_PLUS_EQUAL.String(), + T_MINUS_EQUAL.String(), + T_XOR_EQUAL.String(), + T_MOD_EQUAL.String(), + T_DEC.String(), + T_INC.String(), + T_DOUBLE_ARROW.String(), + T_SPACESHIP.String(), + T_IS_NOT_EQUAL.String(), + T_IS_NOT_EQUAL.String(), + T_IS_NOT_IDENTICAL.String(), + T_IS_EQUAL.String(), + T_IS_IDENTICAL.String(), + T_SL_EQUAL.String(), + T_SR_EQUAL.String(), + T_IS_GREATER_OR_EQUAL.String(), + T_IS_SMALLER_OR_EQUAL.String(), + T_POW.String(), + T_SL.String(), + T_SR.String(), + T_COALESCE.String(), - scanner.T_ABSTRACT.String(), - scanner.T_ARRAY.String(), - scanner.T_AS.String(), - scanner.T_BREAK.String(), - scanner.T_CALLABLE.String(), - scanner.T_CASE.String(), - scanner.T_CATCH.String(), - scanner.T_CLASS.String(), - scanner.T_CLONE.String(), - scanner.T_CONST.String(), - scanner.T_CONTINUE.String(), - scanner.T_DECLARE.String(), - scanner.T_DEFAULT.String(), - scanner.T_DO.String(), - scanner.T_ECHO.String(), - scanner.T_ELSE.String(), - scanner.T_ELSEIF.String(), - scanner.T_EMPTY.String(), - scanner.T_ENDDECLARE.String(), - scanner.T_ENDFOR.String(), - scanner.T_ENDFOREACH.String(), - scanner.T_ENDIF.String(), - scanner.T_ENDSWITCH.String(), - scanner.T_ENDWHILE.String(), - scanner.T_EVAL.String(), - scanner.T_EXIT.String(), - scanner.T_EXTENDS.String(), - scanner.T_FINAL.String(), - scanner.T_FINALLY.String(), - scanner.T_FOR.String(), - scanner.T_FOREACH.String(), - scanner.T_FUNCTION.String(), - scanner.T_FUNCTION.String(), - scanner.T_GLOBAL.String(), - scanner.T_GOTO.String(), - scanner.T_IF.String(), - scanner.T_ISSET.String(), - scanner.T_IMPLEMENTS.String(), - scanner.T_INSTANCEOF.String(), - scanner.T_INSTEADOF.String(), - scanner.T_INTERFACE.String(), - scanner.T_LIST.String(), - scanner.T_NAMESPACE.String(), - scanner.T_PRIVATE.String(), - scanner.T_PUBLIC.String(), - scanner.T_PRINT.String(), - scanner.T_PROTECTED.String(), - scanner.T_RETURN.String(), - scanner.T_STATIC.String(), - scanner.T_SWITCH.String(), - scanner.T_THROW.String(), - scanner.T_TRAIT.String(), - scanner.T_TRY.String(), - scanner.T_UNSET.String(), - scanner.T_USE.String(), - scanner.T_VAR.String(), - scanner.T_WHILE.String(), - scanner.T_YIELD_FROM.String(), - scanner.T_YIELD.String(), - scanner.T_INCLUDE.String(), - scanner.T_INCLUDE_ONCE.String(), - scanner.T_REQUIRE.String(), - scanner.T_REQUIRE_ONCE.String(), + TokenID(int(';')).String(), + TokenID(int(':')).String(), + TokenID(int(',')).String(), + TokenID(int('.')).String(), + TokenID(int('[')).String(), + TokenID(int(']')).String(), + TokenID(int('(')).String(), + TokenID(int(')')).String(), + TokenID(int('|')).String(), + TokenID(int('/')).String(), + TokenID(int('^')).String(), + TokenID(int('&')).String(), + TokenID(int('+')).String(), + TokenID(int('-')).String(), + TokenID(int('*')).String(), + TokenID(int('=')).String(), + TokenID(int('%')).String(), + TokenID(int('!')).String(), + TokenID(int('~')).String(), + TokenID(int('$')).String(), + TokenID(int('<')).String(), + TokenID(int('>')).String(), + TokenID(int('?')).String(), + TokenID(int('@')).String(), + TokenID(int('{')).String(), + TokenID(int('}')).String(), - scanner.T_CLASS_C.String(), - scanner.T_DIR.String(), - scanner.T_FILE.String(), - scanner.T_FUNC_C.String(), - scanner.T_LINE.String(), - scanner.T_NS_C.String(), - scanner.T_METHOD_C.String(), - scanner.T_TRAIT_C.String(), - scanner.T_HALT_COMPILER.String(), + T_VARIABLE.String(), + T_STRING.String(), - scanner.T_NEW.String(), - scanner.T_LOGICAL_AND.String(), - scanner.T_LOGICAL_OR.String(), - scanner.T_LOGICAL_XOR.String(), + T_OBJECT_OPERATOR.String(), + T_OBJECT_OPERATOR.String(), + T_STRING.String(), - scanner.T_NS_SEPARATOR.String(), - scanner.T_ELLIPSIS.String(), - scanner.T_PAAMAYIM_NEKUDOTAYIM.String(), - scanner.T_BOOLEAN_AND.String(), - scanner.T_BOOLEAN_OR.String(), - scanner.T_AND_EQUAL.String(), - scanner.T_OR_EQUAL.String(), - scanner.T_CONCAT_EQUAL.String(), - scanner.T_MUL_EQUAL.String(), - scanner.T_POW_EQUAL.String(), - scanner.T_DIV_EQUAL.String(), - scanner.T_PLUS_EQUAL.String(), - scanner.T_MINUS_EQUAL.String(), - scanner.T_XOR_EQUAL.String(), - scanner.T_MOD_EQUAL.String(), - scanner.T_DEC.String(), - scanner.T_INC.String(), - scanner.T_DOUBLE_ARROW.String(), - scanner.T_SPACESHIP.String(), - scanner.T_IS_NOT_EQUAL.String(), - scanner.T_IS_NOT_EQUAL.String(), - scanner.T_IS_NOT_IDENTICAL.String(), - scanner.T_IS_EQUAL.String(), - scanner.T_IS_IDENTICAL.String(), - scanner.T_SL_EQUAL.String(), - scanner.T_SR_EQUAL.String(), - scanner.T_IS_GREATER_OR_EQUAL.String(), - scanner.T_IS_SMALLER_OR_EQUAL.String(), - scanner.T_POW.String(), - scanner.T_SL.String(), - scanner.T_SR.String(), - scanner.T_COALESCE.String(), - - scanner.LexerToken(scanner.Rune2Class(';')).String(), - scanner.LexerToken(scanner.Rune2Class(':')).String(), - scanner.LexerToken(scanner.Rune2Class(',')).String(), - scanner.LexerToken(scanner.Rune2Class('.')).String(), - scanner.LexerToken(scanner.Rune2Class('[')).String(), - scanner.LexerToken(scanner.Rune2Class(']')).String(), - scanner.LexerToken(scanner.Rune2Class('(')).String(), - scanner.LexerToken(scanner.Rune2Class(')')).String(), - scanner.LexerToken(scanner.Rune2Class('|')).String(), - scanner.LexerToken(scanner.Rune2Class('/')).String(), - scanner.LexerToken(scanner.Rune2Class('^')).String(), - scanner.LexerToken(scanner.Rune2Class('&')).String(), - scanner.LexerToken(scanner.Rune2Class('+')).String(), - scanner.LexerToken(scanner.Rune2Class('-')).String(), - scanner.LexerToken(scanner.Rune2Class('*')).String(), - scanner.LexerToken(scanner.Rune2Class('=')).String(), - scanner.LexerToken(scanner.Rune2Class('%')).String(), - scanner.LexerToken(scanner.Rune2Class('!')).String(), - scanner.LexerToken(scanner.Rune2Class('~')).String(), - scanner.LexerToken(scanner.Rune2Class('$')).String(), - scanner.LexerToken(scanner.Rune2Class('<')).String(), - scanner.LexerToken(scanner.Rune2Class('>')).String(), - scanner.LexerToken(scanner.Rune2Class('?')).String(), - scanner.LexerToken(scanner.Rune2Class('@')).String(), - scanner.LexerToken(scanner.Rune2Class('{')).String(), - scanner.LexerToken(scanner.Rune2Class('}')).String(), - - scanner.T_VARIABLE.String(), - scanner.T_STRING.String(), - - scanner.T_OBJECT_OPERATOR.String(), - scanner.T_OBJECT_OPERATOR.String(), - scanner.T_STRING.String(), - - scanner.T_CONSTANT_ENCAPSED_STRING.String(), - scanner.T_CONSTANT_ENCAPSED_STRING.String(), - scanner.T_CONSTANT_ENCAPSED_STRING.String(), - - scanner.T_ARRAY_CAST.String(), - scanner.T_BOOL_CAST.String(), - scanner.T_BOOL_CAST.String(), - scanner.T_DOUBLE_CAST.String(), - scanner.T_DOUBLE_CAST.String(), - scanner.T_DOUBLE_CAST.String(), - scanner.T_INT_CAST.String(), - scanner.T_INT_CAST.String(), - scanner.T_OBJECT_CAST.String(), - scanner.T_STRING_CAST.String(), - scanner.T_STRING_CAST.String(), - scanner.T_UNSET_CAST.String(), + T_ARRAY_CAST.String(), + T_BOOL_CAST.String(), + T_BOOL_CAST.String(), + T_DOUBLE_CAST.String(), + T_DOUBLE_CAST.String(), + T_DOUBLE_CAST.String(), + T_INT_CAST.String(), + T_INT_CAST.String(), + T_OBJECT_CAST.String(), + T_STRING_CAST.String(), + T_STRING_CAST.String(), + T_UNSET_CAST.String(), } - lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") + lexer := NewLexer([]byte(src)) lexer.WithFreeFloating = true lv := &lval{} actual := []string{} for { token := lexer.Lex(lv) - if token < 0 { + if token == 0 { break } - actual = append(actual, scanner.LexerToken(token).String()) + actual = append(actual, TokenID(token).String()) + } + + assert.DeepEqual(t, expected, actual) +} + +func TestShebang(t *testing.T) { + src := `#!/usr/bin/env php + bar ( '' ) ;` - lexer := scanner.NewLexer(bytes.NewBufferString(src), "test.php") + lexer := NewLexer([]byte(src)) lexer.WithFreeFloating = true lv := &lval{} @@ -1257,12 +1446,12 @@ func TestMethodCallTokens(t *testing.T) { { Value: " 0) - assert.Assert(t, lexer.Errors[0].String() == "unicode (UTF-8) BOM in middle of file at line 1") -} diff --git a/scanner/tokenid_string.go b/scanner/tokenid_string.go new file mode 100644 index 0000000..7328946 --- /dev/null +++ b/scanner/tokenid_string.go @@ -0,0 +1,161 @@ +// Code generated by "stringer -type=TokenID -output ./tokenid_string.go"; DO NOT EDIT. + +package scanner + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[T_INCLUDE-57346] + _ = x[T_INCLUDE_ONCE-57347] + _ = x[T_EXIT-57348] + _ = x[T_IF-57349] + _ = x[T_LNUMBER-57350] + _ = x[T_DNUMBER-57351] + _ = x[T_STRING-57352] + _ = x[T_STRING_VARNAME-57353] + _ = x[T_VARIABLE-57354] + _ = x[T_NUM_STRING-57355] + _ = x[T_INLINE_HTML-57356] + _ = x[T_CHARACTER-57357] + _ = x[T_BAD_CHARACTER-57358] + _ = x[T_ENCAPSED_AND_WHITESPACE-57359] + _ = x[T_CONSTANT_ENCAPSED_STRING-57360] + _ = x[T_ECHO-57361] + _ = x[T_DO-57362] + _ = x[T_WHILE-57363] + _ = x[T_ENDWHILE-57364] + _ = x[T_FOR-57365] + _ = x[T_ENDFOR-57366] + _ = x[T_FOREACH-57367] + _ = x[T_ENDFOREACH-57368] + _ = x[T_DECLARE-57369] + _ = x[T_ENDDECLARE-57370] + _ = x[T_AS-57371] + _ = x[T_SWITCH-57372] + _ = x[T_ENDSWITCH-57373] + _ = x[T_CASE-57374] + _ = x[T_DEFAULT-57375] + _ = x[T_BREAK-57376] + _ = x[T_CONTINUE-57377] + _ = x[T_GOTO-57378] + _ = x[T_FUNCTION-57379] + _ = x[T_FN-57380] + _ = x[T_CONST-57381] + _ = x[T_RETURN-57382] + _ = x[T_TRY-57383] + _ = x[T_CATCH-57384] + _ = x[T_FINALLY-57385] + _ = x[T_THROW-57386] + _ = x[T_USE-57387] + _ = x[T_INSTEADOF-57388] + _ = x[T_GLOBAL-57389] + _ = x[T_VAR-57390] + _ = x[T_UNSET-57391] + _ = x[T_ISSET-57392] + _ = x[T_EMPTY-57393] + _ = x[T_HALT_COMPILER-57394] + _ = x[T_CLASS-57395] + _ = x[T_TRAIT-57396] + _ = x[T_INTERFACE-57397] + _ = x[T_EXTENDS-57398] + _ = x[T_IMPLEMENTS-57399] + _ = x[T_OBJECT_OPERATOR-57400] + _ = x[T_DOUBLE_ARROW-57401] + _ = x[T_LIST-57402] + _ = x[T_ARRAY-57403] + _ = x[T_CALLABLE-57404] + _ = x[T_CLASS_C-57405] + _ = x[T_TRAIT_C-57406] + _ = x[T_METHOD_C-57407] + _ = x[T_FUNC_C-57408] + _ = x[T_LINE-57409] + _ = x[T_FILE-57410] + _ = x[T_COMMENT-57411] + _ = x[T_DOC_COMMENT-57412] + _ = x[T_OPEN_TAG-57413] + _ = x[T_OPEN_TAG_WITH_ECHO-57414] + _ = x[T_CLOSE_TAG-57415] + _ = x[T_WHITESPACE-57416] + _ = x[T_START_HEREDOC-57417] + _ = x[T_END_HEREDOC-57418] + _ = x[T_DOLLAR_OPEN_CURLY_BRACES-57419] + _ = x[T_CURLY_OPEN-57420] + _ = x[T_PAAMAYIM_NEKUDOTAYIM-57421] + _ = x[T_NAMESPACE-57422] + _ = x[T_NS_C-57423] + _ = x[T_DIR-57424] + _ = x[T_NS_SEPARATOR-57425] + _ = x[T_ELLIPSIS-57426] + _ = x[T_EVAL-57427] + _ = x[T_REQUIRE-57428] + _ = x[T_REQUIRE_ONCE-57429] + _ = x[T_LOGICAL_OR-57430] + _ = x[T_LOGICAL_XOR-57431] + _ = x[T_LOGICAL_AND-57432] + _ = x[T_INSTANCEOF-57433] + _ = x[T_NEW-57434] + _ = x[T_CLONE-57435] + _ = x[T_ELSEIF-57436] + _ = x[T_ELSE-57437] + _ = x[T_ENDIF-57438] + _ = x[T_PRINT-57439] + _ = x[T_YIELD-57440] + _ = x[T_STATIC-57441] + _ = x[T_ABSTRACT-57442] + _ = x[T_FINAL-57443] + _ = x[T_PRIVATE-57444] + _ = x[T_PROTECTED-57445] + _ = x[T_PUBLIC-57446] + _ = x[T_INC-57447] + _ = x[T_DEC-57448] + _ = x[T_YIELD_FROM-57449] + _ = x[T_INT_CAST-57450] + _ = x[T_DOUBLE_CAST-57451] + _ = x[T_STRING_CAST-57452] + _ = x[T_ARRAY_CAST-57453] + _ = x[T_OBJECT_CAST-57454] + _ = x[T_BOOL_CAST-57455] + _ = x[T_UNSET_CAST-57456] + _ = x[T_COALESCE-57457] + _ = x[T_SPACESHIP-57458] + _ = x[T_NOELSE-57459] + _ = x[T_PLUS_EQUAL-57460] + _ = x[T_MINUS_EQUAL-57461] + _ = x[T_MUL_EQUAL-57462] + _ = x[T_POW_EQUAL-57463] + _ = x[T_DIV_EQUAL-57464] + _ = x[T_CONCAT_EQUAL-57465] + _ = x[T_MOD_EQUAL-57466] + _ = x[T_AND_EQUAL-57467] + _ = x[T_OR_EQUAL-57468] + _ = x[T_XOR_EQUAL-57469] + _ = x[T_SL_EQUAL-57470] + _ = x[T_SR_EQUAL-57471] + _ = x[T_COALESCE_EQUAL-57472] + _ = x[T_BOOLEAN_OR-57473] + _ = x[T_BOOLEAN_AND-57474] + _ = x[T_POW-57475] + _ = x[T_SL-57476] + _ = x[T_SR-57477] + _ = x[T_IS_IDENTICAL-57478] + _ = x[T_IS_NOT_IDENTICAL-57479] + _ = x[T_IS_EQUAL-57480] + _ = x[T_IS_NOT_EQUAL-57481] + _ = x[T_IS_SMALLER_OR_EQUAL-57482] + _ = x[T_IS_GREATER_OR_EQUAL-57483] +} + +const _TokenID_name = "T_INCLUDET_INCLUDE_ONCET_EXITT_IFT_LNUMBERT_DNUMBERT_STRINGT_STRING_VARNAMET_VARIABLET_NUM_STRINGT_INLINE_HTMLT_CHARACTERT_BAD_CHARACTERT_ENCAPSED_AND_WHITESPACET_CONSTANT_ENCAPSED_STRINGT_ECHOT_DOT_WHILET_ENDWHILET_FORT_ENDFORT_FOREACHT_ENDFOREACHT_DECLARET_ENDDECLARET_AST_SWITCHT_ENDSWITCHT_CASET_DEFAULTT_BREAKT_CONTINUET_GOTOT_FUNCTIONT_FNT_CONSTT_RETURNT_TRYT_CATCHT_FINALLYT_THROWT_USET_INSTEADOFT_GLOBALT_VART_UNSETT_ISSETT_EMPTYT_HALT_COMPILERT_CLASST_TRAITT_INTERFACET_EXTENDST_IMPLEMENTST_OBJECT_OPERATORT_DOUBLE_ARROWT_LISTT_ARRAYT_CALLABLET_CLASS_CT_TRAIT_CT_METHOD_CT_FUNC_CT_LINET_FILET_COMMENTT_DOC_COMMENTT_OPEN_TAGT_OPEN_TAG_WITH_ECHOT_CLOSE_TAGT_WHITESPACET_START_HEREDOCT_END_HEREDOCT_DOLLAR_OPEN_CURLY_BRACEST_CURLY_OPENT_PAAMAYIM_NEKUDOTAYIMT_NAMESPACET_NS_CT_DIRT_NS_SEPARATORT_ELLIPSIST_EVALT_REQUIRET_REQUIRE_ONCET_LOGICAL_ORT_LOGICAL_XORT_LOGICAL_ANDT_INSTANCEOFT_NEWT_CLONET_ELSEIFT_ELSET_ENDIFT_PRINTT_YIELDT_STATICT_ABSTRACTT_FINALT_PRIVATET_PROTECTEDT_PUBLICT_INCT_DECT_YIELD_FROMT_INT_CASTT_DOUBLE_CASTT_STRING_CASTT_ARRAY_CASTT_OBJECT_CASTT_BOOL_CASTT_UNSET_CASTT_COALESCET_SPACESHIPT_NOELSET_PLUS_EQUALT_MINUS_EQUALT_MUL_EQUALT_POW_EQUALT_DIV_EQUALT_CONCAT_EQUALT_MOD_EQUALT_AND_EQUALT_OR_EQUALT_XOR_EQUALT_SL_EQUALT_SR_EQUALT_COALESCE_EQUALT_BOOLEAN_ORT_BOOLEAN_ANDT_POWT_SLT_SRT_IS_IDENTICALT_IS_NOT_IDENTICALT_IS_EQUALT_IS_NOT_EQUALT_IS_SMALLER_OR_EQUALT_IS_GREATER_OR_EQUAL" + +var _TokenID_index = [...]uint16{0, 9, 23, 29, 33, 42, 51, 59, 75, 85, 97, 110, 121, 136, 161, 187, 193, 197, 204, 214, 219, 227, 236, 248, 257, 269, 273, 281, 292, 298, 307, 314, 324, 330, 340, 344, 351, 359, 364, 371, 380, 387, 392, 403, 411, 416, 423, 430, 437, 452, 459, 466, 477, 486, 498, 515, 529, 535, 542, 552, 561, 570, 580, 588, 594, 600, 609, 622, 632, 652, 663, 675, 690, 703, 729, 741, 763, 774, 780, 785, 799, 809, 815, 824, 838, 850, 863, 876, 888, 893, 900, 908, 914, 921, 928, 935, 943, 953, 960, 969, 980, 988, 993, 998, 1010, 1020, 1033, 1046, 1058, 1071, 1082, 1094, 1104, 1115, 1123, 1135, 1148, 1159, 1170, 1181, 1195, 1206, 1217, 1227, 1238, 1248, 1258, 1274, 1286, 1299, 1304, 1308, 1312, 1326, 1344, 1354, 1368, 1389, 1410} + +func (i TokenID) String() string { + i -= 57346 + if i < 0 || i >= TokenID(len(_TokenID_index)-1) { + return "TokenID(" + strconv.FormatInt(int64(i+57346), 10) + ")" + } + return _TokenID_name[_TokenID_index[i]:_TokenID_index[i+1]] +} diff --git a/version/version.go b/version/version.go new file mode 100644 index 0000000..f11d933 --- /dev/null +++ b/version/version.go @@ -0,0 +1,61 @@ +package version + +import ( + "errors" + "strconv" + "strings" +) + +type version struct { + major int + minor int +} + +func Compare(a string, b string) (int, error) { + first, err := parse(a) + if err != nil { + return 0, err + } + + second, err := parse(b) + if err != nil { + return 0, err + } + + if first.major < second.major { + return -1, nil + } + + if first.major > 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 c5dc4d4..cdfc78d 100644 --- a/visitor/dumper_test.go +++ b/visitor/dumper_test.go @@ -1,7 +1,6 @@ package visitor_test import ( - "bytes" "os" "github.com/z7zmey/php-parser/php7" @@ -21,7 +20,7 @@ func ExampleDumper() { } }` - php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php") + php7parser := php7.NewParser([]byte(src), "7.4") php7parser.WithFreeFloating() php7parser.Parse() nodes := php7parser.GetRootNode() @@ -38,27 +37,27 @@ func ExampleDumper() { // Unordered output: // | [*node.Root] - // | "Position": Pos{Line: 3-11 Pos: 10-144} + // | "Position": Pos{Line: 3-11 Pos: 9-144} // | "Stmts": // | [*stmt.Namespace] - // | "Position": Pos{Line: 3-11 Pos: 10-144} + // | "Position": Pos{Line: 3-11 Pos: 9-144} // | "freefloating": // | "Start": "